.net webapi 应用程序,使用 docker-compose
一个据说快速而简单的问题 - 如何使
visual studio
使 docker 映像无效并重建它?我尝试清除解决方案以及从 docker 本身中删除图像容器/本身 - 但是 visual studio
继续使用某种类型的 cache
作为比较 - 当我手动执行命令时:
docker-compose 构建 --no-cache
我收到一个错误,指出我尝试的文件
COPY
不存在。这是我希望在视觉工作室中看到的预期行为和错误!
复制[“fileThatDoesNotExist.config”,“。”]
当我在 VisualStudio 中重建/清理/运行解决方案并使用
docker-compose
运行配置文件时 - 它会继续启动解决方案,没有任何错误!
在
build order
控制台窗口中我看到以下日志
2>#5 [myservice base 2/2] WORKDIR /app
2>#5 CACHED
2>#6 [myservice] exporting to image
他继续使用缓存是没有意义的,因为我已经更改了
dockerfile
的内容并且需要重建(并且预计会失败)
在 docker-compose
dcproj
文件中我尝试设置
<DockerComposeBuildArguments>--no-cache</DockerComposeBuildArguments>
但是没有任何效果
所以我的问题是 - 如何让视觉工作室强行重建整个图像并失败?或者,我可以做什么来清理缓存? (我也不想
prune
整个docker基础设施)
这可能是 Visual Studio 使用 Fast 模式,这是调试配置中的默认模式。在快速模式下,VS 不会构建完整的映像,而是使用卷安装来引入本地构建的代码(顾名思义,这要快得多)。如果您希望 VS 构建完整的 Dockerfile,您可以在 .dcproj 中将属性
DockerDevelopmentMode
设置为 Regular
。