As a developer, I want to access and download container/docker logs from PaaS portal and my environments, just as I can download application logs. This will help me find useful information when a container crashes or fails to start.
See attached docker_logs_mockup.png for suggestion for how this could look.
Here is an example of interesting exception in the docker logs. Today I need to reach out to support to access this vital information.
2024-09-24T05:29:04.3588100Z Starting ssh...
2024-09-24T05:29:04.4980741Z Starting OpenBSD Secure Shell server: sshd.
2024-09-24T05:29:04.4993808Z Starting application...
2024-09-24T05:29:13.4824830Z info: Microsoft.Hosting.Lifetime[14]
2024-09-24T05:29:13.4827604Z Now listening on: http://[::]:80
2024-09-24T05:29:13.4935836Z info: Microsoft.Hosting.Lifetime[0]
2024-09-24T05:29:13.4936420Z Application started. Press Ctrl+C to shut down.
2024-09-24T05:29:13.4974393Z info: Microsoft.Hosting.Lifetime[0]
2024-09-24T05:29:13.4974929Z Hosting environment: Integration
2024-09-24T05:29:13.4975076Z info: Microsoft.Hosting.Lifetime[0]
2024-09-24T05:29:13.4975237Z Content root path: /app
2024-09-24T05:29:14.1806280Z fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
2024-09-24T05:29:14.1807518Z An unhandled exception has occurred while executing the request.
2024-09-24T05:29:14.1837119Z System.ComponentModel.Win32Exception (2): An error occurred trying to start process '/usr/bin/node' with working directory './Compiled-frontend/'. No such file or directory
2024-09-24T05:29:14.1859699Z at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
2024-09-24T05:29:14.1860211Z at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
2024-09-24T05:29:14.1875457Z at EPiServer.ContentDelivery.NodeProxy.NodeJsProcess.StartProcessInternal() in D:\agent\_work\1708\s\EPiServer.ContentDelivery.NodeProxy\NodeJsProcess.cs:line 189
2024-09-24T05:29:14.1875913Z at EPiServer.ContentDelivery.NodeProxy.NodeJsProcess.EnsureProcessStarted(CancellationToken cancellationToken) in D:\agent\_work\1708\s\EPiServer.ContentDelivery.NodeProxy\NodeJsProcess.cs:line 71
2024-09-24T05:29:14.1876098Z at Microsoft.AspNetCore.Builder.NodeJsEndpointRouteBuilderExtensions.<>c__DisplayClass0_0.<<MapNodeJs>b__0>d.MoveNext() in D:\agent\_work\1708\s\EPiServer.ContentDelivery.NodeProxy\DependencyInjection\NodeJsEndpointRouteBuilderExtensions.cs:line 24
2024-09-24T05:29:14.1876256Z --- End of stack trace from previous location ---
2024-09-24T05:29:14.1876362Z at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
2024-09-24T05:29:14.1876855Z at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
2024-09-24T05:29:14.1876960Z at EPiServer.Cms.Shell.UI.Internal.RegisterAdminUserMiddleware.InvokeAsync(HttpContext context)
2024-09-24T05:29:14.1877078Z at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
2024-09-24T05:59:05.5938074Z Terminated