Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

ProGet upgrade 5.3.37 to 6.0.5 Permission Denied starting Kestrel



  • We are testing upgrading ProGet from 5.3.37 to 6.0.5 in our test environment. We run ProGet in rootless Podman containers on OEL8 with the following command:

    podman run -d --runtime=crun --userns=keep-id -v /home/local-user/sharedconfig/config1:/usr/share/Inedo/SharedConfig -v /var/proget/packages:/var/proget/packages -p 8080:8080 --name=cproget -e SQL_CONNECTION_STRING='<connection string>' -e TZ='America/New_York' proget.inedo.com/productimages/inedo/proget:6.0.5
    

    In the .../sharedconfig/config1 directory we have the following:

    <?xml version="1.0" encoding="utf-8"?><InedoAppConfig><ConnectionString Type="SqlServer">'"$SQL_CONNECTION_STRING"'</ConnectionString><WebServer Enabled="true" Urls="http://*:8080/"/></InedoAppConfig>
    

    The config above is a result of working in this issue: https://forums.inedo.com/topic/3098/run-proget-container-as-non-root/3?_=1641935170390

    We are getting the following error when the container starts:

    Starting the Package/Container Scanner task runner...
    Package/Container Scanner task runner started.
    Initializing Scheduled Job Dispatcher...
    Scheduled Job Dispatcher initialized.
    Running Scheduled Job Dispatcher...
    Checking for scheduled jobs...
    Ensuring that all required scheduled jobs are configured...
    Scheduled job configuration is correct.
    info: Inedo.Web.BackgroundTaskQueueService[0]
          Background Task Queue is starting.
    Scheduled Job Dispatcher completed.
    crit: Microsoft.AspNetCore.Server.Kestrel[0]
          Unable to start Kestrel.
          System.Net.Sockets.SocketException (13): Permission denied
             at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
             at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
             at System.Net.Sockets.Socket.Bind(EndPoint localEP)
             at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.<Bind>g__BindSocket|13_0(<>c__DisplayClass13_0& )
             at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
             at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
             at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConf                                                                                                                                                                                        ig endpointConfig)
             at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass29_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
          --- End of stack trace from previous location ---
             at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context)
             at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context)
             at Microsoft.AspNetCore.Server.Kestrel.Core.AnyIPListenOptions.BindAsync(AddressBindContext context)
             at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context)
             at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(IEnumerable`1 listenOptions, AddressBindContext context)
             at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
             at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
    Initializing Proxy Configuration Monitor...
    Proxy Configuration Monitor initialized.
    Running Proxy Configuration Monitor...
    Proxy Configuration Monitor completed.
    Initializing Drop Path Monitor...
    Drop Path Monitor initialized.
    Running Drop Path Monitor...
    Getting list of feeds with a drop path...
    No feeds with a drop path.
    Drop Path Monitor completed.
    Initializing Execution Dispatcher...
    

    It seems to me that the new version is possibly ignoring the config file we have to force it to use higher ports since we are running rootless. We have confirmed the location is mounted and we can see the shared configuration file in the container when interactively working in it.



  • Looks like I'm late to the party and ashamed I did not see the other issues related to this....https://forums.inedo.com/topic/3402/proget-on-rootless-docker-cannot-switch-port

    I'll try these out and see if this solves it.



  • Looks like using the environment variable worked. Sorry for the pollution!


  • inedo-engineer

    Hi @kichikawa_2913,

    Thanks for following up and letting us know that you found the solution!

    Thanks,
    Dan


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation