I'm deploying ProGet in Kubernetes and the containers are restricted to run as non-root users. The ProGet container tries to bind to port 80 by default and this is denied for non-root users. As expected, the logs showed this error:
Shared configuration file not found at /etc/inedo/ProGet.config.
No encryption key is configured. Credentials will be stored in plain text.
info: Inedo.Web.BackgroundTaskQueueService[0]
Background Task Queue is starting.
warn: Microsoft.AspNetCore.Hosting.Diagnostics[15]
Overriding HTTP_PORTS '8080' and HTTPS_PORTS ''. Binding to values defined by URLS instead 'http://*:80'.
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Overriding address(es) 'http://*:80'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead.
fail: Microsoft.Extensions.Hosting.Internal.Host[11]
Hosting failed to start
System.Net.Sockets.SocketException (13): Permission denied
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
I followed the guide in https://docs.inedo.com/docs/installation/linux/installation-troubleshooting-docker-installations#root-less-containers to address this but the problem persisted. I tried setting the URLS environment variable but to no avail. Then I set the ASPNETCORE_URLS environment variable to http://*:8080 and this worked. I removed all modifications to config files and it continued to function, thus showing this truly was the fix.
Is this behaviour expected in the latest ProGet Docker deployments? Has Indeo made ProGet align with BuildMaster and Otter in this regard?