Unable to deploy v9 site to linux web app on Azure
Hi, we are trying to deploy our v9 umbraco 9 site to a linux web app on Azure and we are getting an error.
Has anyone else had this error, know how to solve it? Also have you managed to successfully publish to an azure linux web app with an Umbraco 9 site.
Here are the logs:
_____
/ _ \ __________ _________ ____
/ /_\ \___ / | \_ __ \_/ __ \
/ | \/ /| | /| | \/\ ___/
\____|__ /_____ \____/ |__| \___ >
\/ \/ \/
A P P S E R V I C E O N L I N U X
Documentation: http://aka.ms/webapp-linux
Dotnet quickstart: https://aka.ms/dotnet-qs
ASP .NETCore Version: 5.0.6
Note: Any data outside '/home' is not persisted
Running oryx create-script -appPath /home/site/wwwroot -output /opt/startup/startup.sh -defaultAppFilePath /defaulthome/hostingstart/hostingstart.dll -bindPort 8080 -userStartupCommand ''
Cound not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
Could not find operation ID in manifest. Generating an operation id...
Build Operation ID: 23c256d6-85e0-4867-85f8-6e753b4a86c2
Agent extension
Before if loop >> DotNet Runtime Writing output script to '/opt/startup/startup.sh'
Trying to find the startup DLL name...
Found the startup D name: MyProject.dll
Running the command: dotnet "MyProject.dll"
Process terminated. Failed to load app-local ICU: libicudata.so.68.2
at System.Environment.FailFast(System.String)
at System.Globalization.GlobalizationMode.LoadLibrary(System.String, Boolean)
at System.Globalization.GlobalizationMode.LoadAppLocalIcuCore(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>)
at System.Globalization.GlobalizationMode.LoadAppLocalIcu(System.String)
at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
at System.Globalization.GlobalizationMode..cctor()
at System.Globalization.CultureData.CreateCultureWithInvariantData()
at System.Globalization.CultureData.get_Invariant()
at System.Globalization.CultureInfo..cctor()
at System.Globalization.CultureInfo.get_CachedCulturesByName()
at System.Globalization.CultureInfo.GetCultureInfo(System.String)
at System.Reflection.RuntimeAssembly.GetLocale()
at System.Reflection.RuntimeAssembly.GetName(Boolean)
at System.Reflection.Assembly.GetName()
at Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseStartup(Microsoft.AspNetCore.Hosting.IWebHostBuilder, System.Type)
at Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseStartup[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Microsoft.AspNetCore.Hosting.IWebHostBuilder)
at MyProject.Program+<>c.<CreateHostBuilder>b__1_1(Microsoft.AspNetCore.Hosting.IWebHostBuilder)
at Microsoft.Extensions.Hosting.GenericHostBuilderExtensions+<>c__DisplayClass0_0.<ConfigureWebHostDefaults>b__0(Microsoft.AspNetCore.Hosting.IWebHostBuilder)
at Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions.ConfigureWebHost(Microsoft.Extensions.Hosting.IHostBuilder, System.Action`1<Microsoft.AspNetCore.Hosting.IWebHostBuilder>, System.Action`1<Microsoft.Extensions.Hosting.WebHostBuilderOptions>)
at Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions.ConfigureWebHost(Microsoft.Extensions.Hosting.IHostBuilder, System.Action`1<Microsoft.AspNetCore.Hosting.IWebHostBuilder>)
at Microsoft.Extensions.Hosting.GenericHostBuilderExtensions.ConfigureWebHostDefaults(Microsoft.Extensions.Hosting.IHostBuilder, System.Action`1<Microsoft.AspNetCore.Hosting.IWebHostBuilder>)
at MyProject.Program.CreateHostBuilder(System.String[])
at MyProject.Program.Main(System.String[])
/opt/startup/startup.sh: line 12: 27 Aborted (core dumped) dotnet "MyProject.dll"
I finally managed to find out what the problem was.
We started out with an earlier version of the Umbraco Project setup file. Which did not include the specific Condition for the ICU packages to only load on Windows environments:
I'm getting the exact same issue but the above solution did not fix it for me.
For clarity, this is brand new umbraco 9 project. I literally added nothing custom. Steps I took:
Create new project via the "Umbraco Project (Umbraco HQ)" project template.
Change the csproj like above solution suggests.
Publish and deploy (to Ubuntu 20.04).
dotnet MyDll.dll and get above error.
Wondering if maybe the project template is also missing other csproj stuff. I'll try replacing the entire thing with the github one, can't be any worse than it currently is lol.
Seems like the condition doesn't seem to be working for whatever reason. I'm not sure what the consequences are for this, but my site seems to run now.
I'm running into the same issue running the latest 9.4.1. I updated my csproj with the config introduced in 9.4 but am still unable to get my site deployed to an Azure Linux Web App. It doesn't seem to crash as it was before on previous versions but has no further logs after the dotnet "Project.dll" runs and server is inaccessible.
EDIT It does eventually come up, but takes nearly 30 minutes. Has anyone else run into this?
Notice the slight difference between the package reference and the RuntimeHostConfiguration; probably due to upgrading the the nuget package without updating the file.
after aligning the versions, things started to work fine
Exact same situation for me on a upgrade from V11 to V13.
I updated the ICU and I got this unhelpful error.
I actually found the issue through checking the debug .exe - as I wanted to see and make sure it was being generated. I ran the exe on a whim and it gave me an actual exception I can work with mentioning the old ICU version. VS was less helpful as it doesn't seem to know this is the cause.
Stupid question, but since it just happened to me I might ask
are you building your Umbraco project in platform independent or by specifying RID? if you want to run on Linux you need to set it to -r linux-x64. I spend a full day trying to figure out why I got the error I saw the build in the build plan was using -r win-x64
Unable to deploy v9 site to linux web app on Azure
Hi, we are trying to deploy our v9 umbraco 9 site to a linux web app on Azure and we are getting an error.
Has anyone else had this error, know how to solve it? Also have you managed to successfully publish to an azure linux web app with an Umbraco 9 site.
Here are the logs:
We have exactly the same issue. Did you manage to get it running Paul?
Not specifically this issue - but was looking for documentation to simply deploy to any Linux machine. Anyone seen that in the V9 docs yet?
I finally managed to find out what the problem was. We started out with an earlier version of the Umbraco Project setup file. Which did not include the specific Condition for the ICU packages to only load on Windows environments:
https://github.com/umbraco/Umbraco-CMS/blob/79fdb9a876a822f8662679711f5f801f3159ff42/build/templates/UmbracoProject/UmbracoProject.csproj
So we ended up updating our csproj file for the 2 ICU dependencies with a OS condition.
Thank you! Really got me out of a bind last night. This worked perfectly and I was able to get the site back online.
Yes the ICU setting solved it for me too
I'm getting the exact same issue but the above solution did not fix it for me.
For clarity, this is brand new umbraco 9 project. I literally added nothing custom. Steps I took:
Wondering if maybe the project template is also missing other csproj stuff. I'll try replacing the entire thing with the github one, can't be any worse than it currently is lol.
None of these suggestions were working for me to get things running on Linux Web Apps.
What worked for me in the end was deleting the following entries from the project file.
Seems like the condition doesn't seem to be working for whatever reason. I'm not sure what the consequences are for this, but my site seems to run now.
Improvements have been made in this area for 9.4 via https://github.com/umbraco/Umbraco-CMS/pull/11961
As of this change app local icu will always be used unless building for MacOS
The app local icu setup is now working on linux (including when building from windows) as of 9.4 rc
I'm running into the same issue running the latest 9.4.1. I updated my csproj with the config introduced in 9.4 but am still unable to get my site deployed to an Azure Linux Web App. It doesn't seem to crash as it was before on previous versions but has no further logs after the dotnet "Project.dll" runs and server is inaccessible.
EDIT It does eventually come up, but takes nearly 30 minutes. Has anyone else run into this?
Do you perhaps have quite some content in your site ?
I had a similar problem deploying to Azure Linux app service, using Umbraco 10.3.1. The exact error about
Failed to loal app-local ICU
The reply about about removing the reference from the project file prompted me to align the versions; I had something like this
<PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2" />
Notice the slight difference between the package reference and the RuntimeHostConfiguration; probably due to upgrading the the nuget package without updating the file.
after aligning the versions, things started to work fine
<PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2.0.9" />
Exact same situation for me on a upgrade from V11 to V13. I updated the ICU and I got this unhelpful error.
I actually found the issue through checking the debug .exe - as I wanted to see and make sure it was being generated. I ran the exe on a whim and it gave me an actual exception I can work with mentioning the old ICU version. VS was less helpful as it doesn't seem to know this is the cause.
U13. I've this by default:
I still have the error on Linux at runtime.
Stupid question, but since it just happened to me I might ask
are you building your Umbraco project in platform independent or by specifying RID? if you want to run on Linux you need to set it to
-r linux-x64
. I spend a full day trying to figure out why I got the error I saw the build in the build plan was using-r win-x64
is working on a reply...