visual-studio - Visual Studio 正在删除我在 docker.compose.vs.debug.g.yml 中添加的环境变量
问题描述
首先,我在 Visual Studio 2019 中本地运行它,这就是我目前正在尝试找到我的问题的环境。它是 .NETCORE 3.1 并进入 Linux。
我继承了一个需要在本地调试的项目,但将被推送到 AWS 上的 ECS 大部分 CI/CD 已经围绕这个容器设置,我觉得它限制了我调试它的问题的能力,但这就是我被交给了,所以我在这里和你们聊天。
目前,该应用程序在容器外运行良好并且能够使用我的开发环境凭据。
当我尝试在 docker-compose 中本地调试容器时,问题似乎堆积起来,因此 docker 不再有权访问 AWS 凭证,因为它是它自己的小容器。
我最初的邪恶计划只是查看我的输出,然后更正它用于运行的 docker-compose.vs.debug.g.yml,并将我的密钥推入其中,同时调试 AWS ECS 容器退出代码 139 的原因在 AWS 上。
问题是现在似乎有很多齿轮在旋转,只是做一个简单的“docker run -e awssecretkey=YOUWISHBOI”。几乎是不可能的。
注意:请不要挂断下面的任何错误,这只是为了演示我想在哪里推送我的环境变量。我不小心重命名了这些程序,以保持无辜者的匿名。
version: '3.4'
services:
pickle.application:
image: pickle:dev
container_name: pickle.Application
build:
target: base
labels:
com.microsoft.created-by: "visual-studio"
com.microsoft.visual-studio.project-name: "pickle.Application"
environment:
- NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages
**- HOW_DO_I=KEEP_SOMETHING_HERE**
volumes:
- C:\mq-tech\pickle-system\pickle\pickle\src\pickle.Application:/app
- C:\Users\Carter-PC\vsdbg\vs2017u5:/remote_debugger:rw
- C:\Users\Carter-PC\.nuget\packages\:/root/.nuget/packages:ro
- C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages:ro
entrypoint: tail -f /dev/null
labels:
com.microsoft.visualstudio.debuggee.program: "dotnet"
com.microsoft.visualstudio.debuggee.arguments: " --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages \"/app/bin/Debug/netcoreapp3.1/pickleApplication.dll\""
com.microsoft.visualstudio.debuggee.workingdirectory: "/app"
com.microsoft.visualstudio.debuggee.killprogram: "/bin/sh -c \"if PID=$$(pidof dotnet); then kill $$PID; fi\""
tty: true
所以我想我的问题是使用 docker-compose 调试将我的 AWS 环境变量放在它将调试并拥有它们的正确方法是什么?
我想我可能会以完全错误的方式来,请怜悯!
解决方案
我意识到这个答案有点晚了,但仍然有人可能会觉得它很有用。
您可以创建一个docker-compose.vs.debug.yml
文件,该文件将在运行 docker-compose 命令时由 VS 作为最后一个提供(因此它不会被覆盖)。
它看起来像这样:
version: '3.4'
services:
pickle.application:
environment:
- HOW_DO_I=KEEP_SOMETHING_HERE
相同的规则适用于docker-compose.vs.release.yml
文件,但在发布模式下。