Closed DanielGoehler closed 3 years ago
Correct - as Windows Client doesn't work through traefik, I never bothered to do anything about this.
Ahh - I saw you suggested to add a warning - I can do that, yes
Correct - as Windows Client doesn't work through traefik, I never bothered to do anything about this.
I've tried that before, and must say its not really worth the trouble. You will need to rewrite the whole click once generation. With that you can get the windows client working, but for CSide thats a whole another story. You will need to open up 1433 since the finsql.exe needs direct access to the sql server.
And i think there was even a problem with the traefik version used in the container.
You might find Issue #825 interesting.
Hi @jonaswre, how did you access the windows client service port 7046 from outside the host? There is no traefik rule for that?
@DanielGoehler thats where the trouble begins...
You will need to upgrade traefik to atleast 2.0. I think last time i looked into it there was no docker image for windows in the right verion. (There ist now) [traefik:v2.4-windowsservercore-1809]
The problem is that traefik before version 2 only allows you to route http packages. But since 7046 and 1433 dont use http those will never be reachable over traefik 1.7.
In traefik 2 you can create a tcp router which uses a wildcard domain to route to the right container. So instead of example.com/demo your container would be accessible over demo.example.com. With that your packages dont need to be multiplexed over port 443 but can use all their native ports.
Last time i've had to setup it up manually... (Traefik container and rules)
If guess if one could update the traefik version to the new docker image. That would be a good step in the right direction. Then one would need to get a hook into the new-bccontainer script to be able to create your own rules on container creation.
A easy workaround for your problem would just to find a free tcp port, on the host, when creating the container and then use that as service tier port and open it in the firewall, not a pretty solution but could be automated as well and would be way easier and if you provide the click once you wouldn't need to know these ports.
... And you need to set PublishPorts switch https://github.com/microsoft/navcontainerhelper/blob/0758393e2b222ab1c2e1e5329760c2a3f6721df1/ContainerHandling/New-NavContainer.ps1#L135
Hi @jonaswre, thanks! I look into that.
Shipped in 2.0.9
Describe the issue The tcp ports of the service tier client service and sql server are not accessible from outside the docker host. As far as I can tell, traefik seems to have been unable to forward tcp ports to enable this. The urls in the manifest files (Finsql.application and Microsoft.Dynamics.Nav.Client.application) are incorrect, so downloading the apps doesn't work and it doesn't makes any sense since you can't connect anyway.
My suggestion is to add a warning after "ClickOnce Manifest: ...": ClickOnce apps do not work in combination with traefik.
Scripts used to create container and cause the issue
Full output of scripts