【发布时间】: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