PU On Azure App Services Linux environment

Has anyone been able to get PU working on Azure App Services under a Linux App Service Plan? I’m wanting to use linux as the pricing is a decent amount less than windows. I would be using Powershell 7.

Bumping this rather than making a new thread - has anyone managed to deploy successfully to a Linux App Service? I love my app service deployment, but it feels like I could/should be saving a fair bit of money on it by moving it off a Windows plan.

@adam - can see a couple of years back you said there were issues, but unclear as to whether it was resolved?

I’m trying to deploy 3.2.8 (Linux x64) to a .NET 6 Linux Web App and can’t seem to get the container started… I’ve stripped most of the complicated stuff out of my appsettings.json in case it was getting in the way, pretty much using the appsettings.linux.json that comes with the package.

I can see the files have deployed to /home/site/wwwroot and I can see in the logs it’s trying to start Universal.Server.Dll but then seems to die and doesn’t seem to give much of an error.

2022-09-13T14:29:50.798279581Z   _____                               
2022-09-13T14:29:50.798321281Z   /  _  \ __________ _________   ____  
2022-09-13T14:29:50.798328881Z  /  /_\  \___   /  |  \_  __ \_/ __ \ 
2022-09-13T14:29:50.798335581Z /    |    \/    /|  |  /|  | \/\  ___/ 
2022-09-13T14:29:50.798340981Z \____|__  /_____ \____/ |__|    \___  >
2022-09-13T14:29:50.798347182Z         \/      \/                  \/ 
2022-09-13T14:29:50.798353082Z A P P   S E R V I C E   O N   L I N U X
2022-09-13T14:29:50.798358282Z 
2022-09-13T14:29:50.798363682Z Documentation: http://aka.ms/webapp-linux
2022-09-13T14:29:50.798369382Z Dotnet quickstart: https://aka.ms/dotnet-qs
2022-09-13T14:29:50.798374582Z ASP .NETCore Version: 6.0.3
2022-09-13T14:29:50.798380082Z Note: Any data outside '/home' is not persisted
2022-09-13T14:29:51.049407154Z Starting periodic command scheduler: cron.
2022-09-13T14:29:51.050047961Z Running oryx create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -defaultAppFilePath /defaulthome/hostingstart/hostingstart.dll     -bindPort 8080 -userStartupCommand '' 
2022-09-13T14:29:51.065897339Z Cound not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
2022-09-13T14:29:51.066020040Z Could not find operation ID in manifest. Generating an operation id...
2022-09-13T14:29:51.066187042Z Build Operation ID: bfca7560-2e39-40b2-b8ba-853c4937553d
2022-09-13T14:29:51.218040945Z 
2022-09-13T14:29:51.218205347Z Agent extension ~2
2022-09-13T14:29:51.218305648Z Before if loop >> DotNet Runtime 
2022-09-13T14:29:51.263625757Z DotNet Runtime 6.0Writing output script to '/opt/startup/startup.sh'
2022-09-13T14:29:51.306094233Z Trying to find the startup DLL name...
2022-09-13T14:29:51.306428537Z Found the startup D name: Universal.Server.dll
2022-09-13T14:29:51.306583439Z Running the command: dotnet "Universal.Server.dll"
2022-09-13T14:29:55.109529178Z [14:29:55 INF] Azure Web Sites environment detected. Using '/home/ASP.NET/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
2022-09-13T14:29:55.515324877Z 2022-09-13 02:29:55 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'
2022-09-13T14:29:55.515383278Z 2022-09-13 02:29:55 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:
2022-09-13T14:29:55.515392778Z     Worker count: 10
2022-09-13T14:29:55.515397978Z     Listening queues: 'default'
2022-09-13T14:29:55.515402678Z     Shutdown timeout: 00:00:15
2022-09-13T14:29:55.515407878Z     Schedule polling interval: 00:00:15
2022-09-13T14:29:55.712081308Z 2022-09-13 02:29:55 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server ln0sdlwk0004pg:48:6ff9cd3f successfully announced in 180.3284 ms
2022-09-13T14:29:55.715649248Z 2022-09-13 02:29:55 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server ln0sdlwk0004pg:48:6ff9cd3f is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...
2022-09-13T14:29:55.743554964Z 2022-09-13 02:29:55 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server ln0sdlwk0004pg:48:6ff9cd3f all the dispatchers started
2022-09-13T14:30:05.477041950Z 2022-09-13 02:30:05 [INFO]  (Hangfire.BackgroundJobServer) Starting Hangfire Server using job storage: 'Hangfire.MemoryStorage.MemoryStorage'
2022-09-13T14:30:05.477079451Z 2022-09-13 02:30:05 [INFO]  (Hangfire.BackgroundJobServer) Using the following options for Hangfire Server:
2022-09-13T14:30:05.477085251Z     Worker count: 10
2022-09-13T14:30:05.477089751Z     Listening queues: 'default'
2022-09-13T14:30:05.477094051Z     Shutdown timeout: 00:00:15
2022-09-13T14:30:05.477098251Z     Schedule polling interval: 00:00:15
2022-09-13T14:30:05.490235271Z 2022-09-13 02:30:05 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server ln0sdlwk0004pg:48:8a87352b successfully announced in 0.1085 ms
2022-09-13T14:30:05.504778824Z 2022-09-13 02:30:05 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server ln0sdlwk0004pg:48:8a87352b is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, Worker, DelayedJobScheduler, RecurringJobScheduler...
2022-09-13T14:30:05.526905162Z 2022-09-13 02:30:05 [INFO]  (Hangfire.Server.BackgroundServerProcess) Server ln0sdlwk0004pg:48:8a87352b all the dispatchers started
2022-09-13T14:30:06.332350276Z [14:30:06 WRN] Overriding address(es) 'http://*:8080'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead.

Are you using a standard web app or a container from Docker? We use the container version for demo.powershelluniversal.com

If you are going to be running linux, I would recommend that for sure.

Have been trying with a regular web app - was as much as possible trying to lift and shift what I’m currently deploying to a Windows Web App.

Maybe container is the way to go, but looks like there’s a bit of extra pre-req needed for that as I’m using git sync for the dashboard code so if I’m reading right need a SQL DB for it. Imagine it might still work out cheaper than a Windows Web app…

Ah, ok. I can give it a shot to see if I experience anything similar. The docker containers are certainly cheaper. Especially if you got the git+SQL route. The LiteDB + Azure Storage route is actually pretty expensive and doesn’t work with git.

Would be interested to see what you find - it’s highly possible I’ve got a setting wrong somewhere…

I’m not against the container route tbh, would just mean a slightly bigger redesign than I’d planned. - thought I might be able to turn around a nice cost saving fairly painlessly!