【问题标题】:How to add console app in docker compose?如何在 docker compose 中添加控制台应用程序?
【发布时间】:2020-08-20 00:51:30
【问题描述】:

我在 .net 核心中创建了 Web 应用程序,并在我的应用程序和 SqlServer 中添加了 docker-compose。 然后我创建了控制台应用程序来迁移我的数据库。 但是当我在日志中启动 docker-compose 时,我看到了

指定的框架可以在:

找不到任何兼容的框架版本 找不到框架“Microsoft.AspNetCore.App”,版本“3.1.0”。

  • 未找到任何框架。

您可以通过安装指定的框架和/或 SDK 来解决问题。

但我有 .NET Core SDK 3.1.0,我的网络应用使用它。

我的 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(控制台应用)

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"]

如何正确运行此控制台应用程序以及如何检查其日志?

【问题讨论】:

    标签: docker .net-core docker-compose console


    【解决方案1】:

    根据您收到的错误消息,您只需要将迁移器应用程序的基本映像从 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多