Working with Umbraco Web Containers

Deploying a Umbraco web application is super easy with the .NET Core ++ SDK 6 / 7 Cloud Container images. We designed these to concentrate and simplify your application configuration in a single Container.

In this article, we will cover setting up a .NET Core ++ SDK 6 / 7 Web Container and customize it to run a Umbraco CMS based website. The overall process is:

You can follow these steps either in your local environment or on your Cloud Container server using your SSH user

Install Umbraco on your local machine:

dotnet new -i Umbraco.Template

Create a new project:

dotnet new umbraco –name MyProject

Once you are happy with your process, we need to do a few tweaks before deploying your project on your Cloud Container. First, we need to edit the launchSettings.json file in order to allow your project to listen on port 80:

vim Properties/launchSettings.json

Update the applicationUrl key under iisSettings group, it should look like this:

"applicationUrl": "http://localhost:80",

And we remove the value on the applicationUrl key under the Umbraco.Web.UI group, it should look like this:

"applicationUrl": "",

After that, all that is left to do is to publish the project, we can achieve that with the following command:

dotnet publish -c release --no-restore /{project_folder}/MyProject/ -o /{desire_localtion}/

Now you can move the output of the publish command to the application directory, this should be in the /container/application/ folder. Once updated, you will need to make a small change on the supervisord.conf file located on /container/config, here you will have to replace the name of the dll file with the one you choose when creating the project:

[program:dotnetapp]
directory=/container/application/
;command=/usr/bin/dotnet ExampleApp.dll
command=/usr/bin/dotnet MyProject.dll
stdout_logfile=/container/logs/supervisor/%(program_name)s-stdout.log
stderr_logfile=/container/logs/supervisor/%(program_name)s-stderr.log