Create a Docker file for a CMS app
This topic describes how to create a Docker file for an Optimizely Content Management System (CMS) application.
Note
This example assumes you already have an Optimizely Content Management System (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 app
- Create a Dockerfile in your project folder.
- 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.
- 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"]
- 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
- Open a command prompt and go to your project folder.
- 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
Updated 15 days ago