Я немного озадачен тем, как все это работает, так как я впервые играю с Docker.
Я скачал следующий образ док-станции Microsoft SQL Server Express (https://hub.docker.com/r/microsoft/mssql-server-windows-express/).
Я пытаюсь объединить некоторые существующие контейнеры в Docker, и каждый раз, когда я запускаю docker-compose up
, я хочу, чтобы получалось, что создается новая база данных и запускается целевой контейнер.
Вот существующий Dockerfile для контейнера, который я хочу выполнить. «Выполнить это» - это контейнер, на котором я хочу запустить dotnet run
, и любой «HelperService» - это службы, которые должны быть запущены до запуска целевого контейнера:
FROM microsoft/dotnet:2.0-runtime-nanoserver-1709 AS base
WORKDIR /app
FROM microsoft/dotnet:2.0-sdk-nanoserver-1709 AS build
WORKDIR /src
COPY ExecuteThis/ExecuteThis.csproj ExecuteThis/
COPY ../HelperService/HelperService.csproj ../HelperService/
COPY ../HelperService2/HelperService2.csproj ../HelperService2/
COPY ../HelperService3/HelperService3.csproj ../HelperService3/
COPY ../HelperService4/HelperService4.csproj ../HelperService4/
COPY ../HelperService5/HelperService5.csproj ../HelperService5/
COPY ../HelperService6/HelperService6.csproj ../HelperService6/
RUN dotnet restore ExecuteThis/ExecuteThis.csproj
COPY . .
WORKDIR /src/ExecuteThis
RUN dotnet build ExecuteThis.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish ExecutThis.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ExecuteThis.dll"]
Вот файл docker-compose.yml
:
version: '3.4'
services:
sqlserver:
image: microsoft/mssql-server-windows-express
helperservice:
image: helperservice
helperservice2:
image: helperservice2
helperservice3:
image: helperservice3
helperservice4:
image: helperservice4
helperservice5:
image: helperservice5
helperservice6:
image: helperservice6
executethis:
image: ${DOCKER_REGISTRY}executethis
depends_on:
- sqlserver
- helperservice
- helperservice2
- helperservice3
- helperservice4
- helperservice5
- helperservice6
build:
context: .
dockerfile: ExecuteThis\Dockerfile
У меня вопрос: как мне создать базу данных и где мне написать эти инструкции? Как мне dotnet run
мой контейнер "ExecuteThis"?