Используйте DockerFile для создания пустой базы данных MSSQL Express в контейнере - PullRequest
0 голосов
/ 27 августа 2018

Я немного озадачен тем, как все это работает, так как я впервые играю с 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"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...