.net - Docker项目在什么情况下重建?
问题描述
我已经构建了一个应用程序,其中包含许多 Docker 容器,以便在业余时间了解有关 Docker 的更多信息。在我的 Mac 上,永远不会重建 Docker 项目,即我在 Visual Studio 2019 中调试应用程序,并且应用程序(网页)每次都会立即出现。
在我的 Windows PC 上,该应用程序有时会像 Mac 一样立即出现。但是,有时我会在输出窗口中看到:
构建 mvcwebapp
建筑服务1
建筑服务2
建筑服务3
ETC
构建需要很长时间(超过两个小时)。我有两个问题:
- 为什么建造需要这么长时间?图像存在 - 重建容器似乎需要很长时间。
- 在什么情况下重建 Docker 项目(如果相关,特别是在 Windows PC 上)?
我的第一个想法是:
- Docker 重新启动和/或
- 当 Visual Studio 重新启动和/或
- 当 PC 重新启动和/或
- 删除 PC 上的文件时
但是,我的测试并没有证明任何结论。
解决方案
我发现这是因为我使用的是默认.dockerignore
文件。我将 .dockerignore 的内容更改为:
.dockerignore
.env
.git
.gitignore
.vs
.vscode
docker-compose*.yml
docker-compose.dcproj
*.sln
*.md
hosts
LICENSE
*.testsettings
vsts-docs
test
ServiceFabric
readme
k8s
img
docs
deploy
Components
cli-windows
cli-mac
cli-linux
**/bin/
**/obj/
**/node_modules/
**/bower_components/
**/wwwroot/lib/*
global.json
**/appsettings.localhost.json
src/Web/WebSPA/wwwroot/
packages/
csproj-files/
test-results/
TestResults/
src/Mobile/
然后构建时间从几个小时减少到几秒钟。
我打算删除这个问题,但是我在 Docker 网站上看到很多类似的问题,但没有答案。因此,我在这里回答,希望它会对某人有所帮助。
推荐阅读
- html - 如何仅使弹性项目溢出而不是整个父项?
- azure - Azure 数据工厂调用本地 Alteryx API
- javascript - 使用 javascript 代码显示和隐藏部分的问题不起作用
- java - 从数组列表中的每一行中提取正则表达式并打印出来
- ruby - Ruby自定义拆分功能慢
- javascript - 无法将多个查询的数据发送到 Django 中的 ajax 调用
- reactjs - 如何在 React Native 中生成助记词?
- sql - T-SQL - 选择重新入院(在一定时间内)具有相同诊断的患者
- java - 子类错误:永远不会在尝试正文中抛出 CloneNotSupportedException
- swift - 如何在类外使用变量