Как добавить консольное приложение в docker Compose? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть веб-приложение, созданное в ядре. net, и я добавил docker -compose с моим приложением и SqlServer. Затем я создал консольное приложение, которое выполняет миграцию моей базы данных. Но когда я начал свой docker -compose в журналах, я вижу

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=x64&rid=debian.10-x64
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found.
  - No frameworks were found.

You can resolve the problem by installing the specified framework and/or SDK.

Но у меня есть. Net core SDK 3.1.0, мое веб-приложение его использует.

My docker -compose выглядит так:

version: '3.4'

services:
  productmanagment.api:
    image: ${DOCKER_REGISTRY-}productmanagmentapi
    container_name: web
    build:
      context: .
      dockerfile: ProductManagment.Api/Dockerfile
    depends_on:
      - db
      - migrator
  db:
    image: "mcr.microsoft.com/mssql/server"
    environment:
        SA_PASSWORD: "MyPassword"
        ACCEPT_EULA: "Y"
  migrator:
    image: ${DOCKER_REGISTRY-}productmanagmentmigrator
    container_name: migrator
    build:
      context: .
      dockerfile: ProductManagment.Migrator/Dockerfile
    depends_on:
      - db
    environment:
        DbConnection: "Server=db;Database=ProductManagment;User=sa;Password=MyPassword"

И Dockerfile в Migrator (консольное приложение)

FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["ProductManagment.Migrator/ProductManagment.Migrator.csproj", "ProductManagment.Migrator/"]
COPY ["ProductManagment.Api.csproj", "ProductManagment.Api/"]
RUN dotnet restore "ProductManagment.Migrator/ProductManagment.Migrator.csproj"
COPY . .
WORKDIR "/src/ProductManagment.Migrator"
RUN dotnet build "ProductManagment.Migrator.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ProductManagment.Migrator.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ProductManagment.Migrator.dll"]

Как правильно запустить это консольное приложение и как проверить его журналы?

1 Ответ

0 голосов
/ 05 мая 2020

В зависимости от сообщения об ошибке, которое вы получаете, вам просто нужно изменить базовый образ с mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim на mcr.microsoft.com/dotnet/core/aspnet:3.1 для приложения миграции. Не видя кода своего проекта, трудно сказать, почему вам нужно внести это изменение.

Этот документ Microsoft также должен помочь вам в понимании: https://docs.microsoft.com/en-us/dotnet/core/docker/build-container?tabs=windows

...