【问题标题】:docker-compose.yml C# .net 5 console app, exception service must be a mappingdocker-compose.yml C# .net 5 控制台应用,异常服务必须是映射
【发布时间】:2021-12-03 16:24:28
【问题描述】:

我从模板创建了一个 .net5 C# 控制台应用程序。然后通过 Add -> 容器编排支持 -> docker-compose 添加 docker-compose。

生成的 Dockerfile

FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["ConsoleApp1/ConsoleApp1.csproj", "ConsoleApp1/"]
RUN dotnet restore "ConsoleApp1/ConsoleApp1.csproj"
COPY . .
WORKDIR "/src/ConsoleApp1"
RUN dotnet build "ConsoleApp1.csproj" -c Release -o /app/build

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

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

生成的 docker-compose

version: '3.4'

services:
  consoleapp1:
    image: ${DOCKER_REGISTRY-}consoleapp1
    build:
      context: .
      dockerfile: ConsoleApp1/Dockerfile

当我尝试运行此示例时,我收到一条消息“services.consoleapp1 must be a mapping”。

有没有办法可以在 docker-compose 中运行控制台应用程序?

【问题讨论】:

  • 你能检查docker-compose.yaml的缩进吗?可能是这个问题:stackoverflow.com/a/43460549/1974021
  • 我查过了。 consoleapp1 行上有 2 个空格,图像和构建行上有 4 个空格,上下文和 dockerfile 行上有 6 个空格。看起来还可以。
  • 嗯,奇怪。我尝试创建一个简单的控制台应用程序,而不是使用生成的。粘贴你的,它的工作正常。我已经在 Windows 容器中尝试过
  • 这个问题真的很奇怪。没想到另一个文件中有问题。也许问题出在我的 VS 中。

标签: c# docker docker-compose yaml .net-5


【解决方案1】:

问题出在 docker-compose.override.yml

生成的文件是

version: '3.4'
services:
  consoleapp1:

因为“consoleapp1:”是空的,所以我发现了错误。

我删除了服务部分,它现在可以工作了。

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2021-08-30
    • 2018-09-23
    • 2017-01-26
    • 1970-01-01
    • 2016-10-04
    • 2021-07-07
    • 2018-06-02
    • 2020-08-17
    相关资源
    最近更新 更多