HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityLog In

Creating a Docker file for a CMS application

This topic describes how to create a Docker file for an Optimizely Content Cloud (CMS) application.

ūüďė

Note

This example assumes you already have an Optimizely CMS ASP.NET Core-based application on your machine.

The project in this example is called 'episerversample'). For more information, see Installing a sample site.

If you are new to ASP.NET, you can follow a simple tutorial to initialize a project or clone our ASP.NET Docker Sample.

Create a Docker file for the application

  1. Create a Dockerfile in your project folder.
  2. Add the text below to your Dockerfile for either Linux or Windows Containers. The tags below are multi-arch, meaning they pull either Windows or Linux containers depending on what mode is set in Docker Desktop for Windows. Read more in switching containers.
  3. The Dockerfile assumes that your application is called episerversample. Change the Dockerfile to use the DLL file of your project.
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build-env
        WORKDIR /app
        
        COPY *.csproj ./
        RUN dotnet restore
        
        COPY . ./
        RUN dotnet publish -c Release -o out
        
        FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim
        WORKDIR /app
        COPY --from=build-env /app/out .
        
        EXPOSE 80
        
        ENTRYPOINT ["dotnet", "episerversample.dll"]
  1. To make your build context as small as possible, add a .dockerignore file to your project folder and copy the following into it.
    bin/`` obj/

Build and run the Docker image

  1. Open a command prompt and go to your project folder.

  2. Use the following commands to build and run your Docker image:

    docker build -t episerversample . docker run -it -e "Urls=http://+:80" -p 8080:80  episerversample
    

Did this page help you?