在 VS2019 上调试 docker-compose 时出错
Posted
技术标签:
【中文标题】在 VS2019 上调试 docker-compose 时出错【英文标题】:Error on Debugging docker-compose on VS2019 【发布时间】:2020-06-16 12:16:38 【问题描述】:我有以下 docker 文件和 docker-compose,它通过 CLI 构建和创建容器映像没有任何问题,但是当我尝试通过 VS2019 构建它以进行调试时,它给出了一个错误,我试图重建项目检查哪里出了问题,但我无法弄清楚。我希望有人指出我正确的故障排除方向:-
Docker 文件:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy necessary files and restore as distinct layer
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
COPY --from=build-env /app/out .
# Expose ports
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
HEALTHCHECK --interval=30s --timeout=3s --retries=1 CMD curl --silent --fail http://localhost:5000/hc || exit 1
# Start
ENTRYPOINT ["dotnet", "VehicleManagementAPI.dll"]
Docker 编写文件:
services:
vehiclemanagementapi:
image: urgen/vehiclemanagementapi:1.0
build: src/VehiclemanagementAPI
depends_on:
- rabbitmq
- sqlserver
ports:
- "5000"
environment:
- ASPNETCORE_ENVIRONMENT=Production
这不是一个特定的项目在构建/编译 docker-compose 文件时出现问题,而是所有项目都会发生这种情况。正如我所说,它通过 CLI 可以正常工作,没有任何问题,但是我想在 VS2019 中调试的一个特定项目存在问题。
所有项目在没有 dockerize 的情况下都可以正常构建/工作,这意味着我的项目还可以,但问题在于 docker-compose 或 docker 文件。
错误:
Severity Code Description Project File Line Suppression State
Error CTC1000 (Line: 45, Col: 12, Idx: 954) - (Line: 45, Col: 36, Idx: 978): Exception during deserialization docker-compose C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets 304
【问题讨论】:
【参考方案1】:我已经通过在 docker-compose 文件中更改以下行来解决问题,但是我很困惑为什么 VS 2019 无法构建在 CLI 模式下可以正常工作的项目,因此我的理解是它是否有问题docker-compose 文件结构,它最初不会在 CLI 模式下构建:-
build: src/VehicleManagementAPI to build: .
即使错误并没有说明问题,错误似乎对故障排除毫无意义/无用。
【讨论】:
以上是关于在 VS2019 上调试 docker-compose 时出错的主要内容,如果未能解决你的问题,请参考以下文章
VS2019 - 使用 Cmake 项目在 Linux 上进行 Sudo 远程调试
无需Windbg | 使用VS 2019调试.NET程序的Crash异常