【问题标题】:Cannot build docker-compose project in visual studio无法在 Visual Studio 中构建 docker-compose 项目
【发布时间】:2021-12-06 05:25:35
【问题描述】:

我有 VS2019。 我创建控制台应用程序.Net core 3.1。 我添加了 docker-compose 项目 - Linux。 我可以在没有 docker compose 的情况下构建和运行控制台应用程序,它会创建 容器。

当我构建 Docker 组合时, 我收到以下错误:

services.consoleapp7 must be a mapping

完整输出:

2>------ Rebuild All started: Project: docker-compose, Configuration: Debug Any CPU ------
Restored C:\Users\GiladSefti\source\repos\ConsoleApp7\ConsoleApp7\ConsoleApp7.csproj (in 15 ms).
1>ConsoleApp7 -> C:\Users\GiladSefti\source\repos\ConsoleApp7\ConsoleApp7\bin\Debug\netcoreapp3.1\ConsoleApp7.dll
2>docker-compose  -f "C:\Users\GiladSefti\source\repos\ConsoleApp7\docker-compose.yml" -f "C:\Users\GiladSefti\source\repos\ConsoleApp7\docker-compose.override.yml" -p dockercompose13777292865876941177 --ansi never config
2>services.consoleapp7 must be a mapping
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(209,5): error DT1001: services.consoleapp7 must be a mapping
2>Done building project "docker-compose.dcproj" -- FAILED.
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped 

文件 docker-compose.yml:

version: '3.4'

services:
  consoleapp7:
    image: ${DOCKER_REGISTRY-}consoleapp7
    build:
      context: .
      dockerfile: ConsoleApp7/Dockerfile

文件 DockerFile :

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

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

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

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

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

甚至在我编译之前,我在 compose.override.yml 中看到错误

Incorrect type. Expected "object".      ConsoleApp7\docker-compose.override.yml

指向

   consoleapp7:

compose.override.yml :

version: '3.4'
services:
  consoleapp7:

项目下载:

https://drive.google.com/file/d/1D4rNS51S_dxY92vUvVqgnKy9TJYof0D4/view?usp=sharing

【问题讨论】:

    标签: visual-studio .net-core docker-compose


    【解决方案1】:

    当我删除设置时 在 Docker 桌面设置中使用 docker Compose V2,问题解决了

    【讨论】:

    • 为我工作,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2022-10-09
    相关资源
    最近更新 更多