Учебник по .NET — ваш первый микросервис

Добавьте метаданные Docker

Чтобы запустить образ Docker, требуется Dockerfile — текстовый файл, содержащий инструкции по сборке приложения в виде образа Docker. Образ Docker содержит все необходимое для запуска вашего приложения в качестве контейнера Docker.

Вернуться в каталог приложений

Поскольку вы открыли новую командную строку на предыдущем шаге, вам нужно вернуться в каталог, в котором вы создали свой сервис.

Поскольку вы открыли новый терминал на предыдущем шаге, вам нужно вернуться в каталог, в котором вы создали свой сервис.

Terminal
cd MyMicroservice

Добавьте DockerFile

Создайте файл с именем Dockerfile с помощью этой команды:

Terminal
touch Dockerfile
Terminal
fsutil file createnew Dockerfile 0

Затем вы можете открыть его в своем любимом текстовом редакторе.

Затем вы можете открыть его в своем любимом текстовом редакторе вручную или с помощью этой команды:

Terminal
open Dockerfile
Terminal
start Dockerfile

Замените содержимое Dockerfile на следующее в текстовом редакторе:

Dockerfile
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY MyMicroservice.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "MyMicroservice.dll"]

Примечание. Убедитесь, что файл называется Dockerfile, а не Dockerfile.txt или как-то иначе.

Необязательно: добавьте файл .dockerignore.

Файл .dockerignore сокращает набор файлов, которые используются как часть сборки docker. Чем меньше файлов, тем быстрее сборка.

Создайте файл с именем .dockerignore (это похоже на файл .gitignore, если вы знакомы с ним) с помощью этой команды:

Terminal
touch .dockerignore
Terminal
fsutil file createnew .dockerignore 0

Затем вы можете открыть его в своем любимом текстовом редакторе.

Затем вы можете открыть его в своем любимом текстовом редакторе вручную или с помощью этой команды:

Terminal
open .dockerignore
Terminal
start .dockerignore

В текстовом редакторе замените содержимое .dockerignore на следующее:

.dockerignore
Dockerfile
[b|B]in
[O|o]bj
Продолжить