gb2*_*b2d 3 visual-studio docker asp.net-core docker-for-windows
我有一个 .NET Core 项目的 docker 文件,该文件在同一解决方案中引用了一些库项目。
鉴于 Docker 不允许从父目录之外复制文件(Docker:从父目录添加文件),我必须将我的 Dockerfile 保留在可执行(启动)项目目录之外。
那么,如何将 Visual Studio 调试与不在可执行项目中的 Dockerfile 一起使用?
如果 Visual Studio 可以在启动项目的目录中找到 Dockerfile,它似乎只适用于 Docker 调试配置文件。
当启动目录中不存在 Dockerfile 时,构建错误指向名为 Container.targets 的文件中的行,位于:
C:\Users<user>\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.4.10\build
<Target Name="ContainerPrepareForLaunch" Condition="Exists('$(ContainerSemaphoreFilePath)')">
<PrepareForLaunch DevelopmentMode="$(ContainerDevelopmentMode)"
DevEnvDir="$(DevEnvDir)"
Dockerfiles="@(_Dockerfile)"
IntermediateOutputPath="$(ContainerIntermediateOutputPath)"
ProjectCapability="@(ProjectCapability)"
ProjectFilePath="$(MSBuildProjectFullPath)"
NuGetPackageFolders="$(NuGetPackageFolders)"
NuGetPackageRoot="$(NuGetPackageRoot)"
TargetFrameworkWithVersion ="$(TargetFramework)"
TargetPath="$(TargetPath)"
ErrorLogFilePath="$(ContainerSemaphoreFilePath)"
DockerLabelBuiltImages="$(DockerLabelBuiltImages)"
DockerImageLabel="$(DockerImageLabel)"
ProjectTypeGuids="$(ProjectTypeGuids)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
但是,我需要能够在每个项目的基础上管理 Dockerfile 的路径。
Tao*_*hou -1
对于Dockerfile,您只能访问父文件夹中的文件。对于用于VS调试的Docker,它将访问项目根文件夹中的dockerfile。你无法改变这种行为。
对于解决方法,您可以考虑添加docker-compose可以指定 dockerfile 位置并直接从 VS 运行的内容。
Docker Compose修改以更改变量 docker-compose.yml中的dockerfilepathdockerfile
version: '3.4'
services:
hellodockertools:
image: ${DOCKER_REGISTRY}hellodockertools
build:
context: .
dockerfile: HelloDockerTools/Dockerfile
Run Code Online (Sandbox Code Playgroud)设置docker-compose为启动项目
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |