docker - 除非明确调用构建,否则从远程映像中拉取
问题描述
有没有办法在 docker-compose yaml 文件中同时指定两者build:
并image:
让它们玩得很好?
理想情况下,远程映像是在或运行docker-compose up
时构建的。当开发人员必须注释掉构建参数以提取远程图像时,这个问题有点令人讨厌。docker-compose up --build
docker-compose build
示例 1
build: ./nginx
image: us.gcr.io/cool-project-123456/dev-box:latest
构建始终运行,然后使用该image:
值命名和标记容器。
示例 2
# build: ./nginx
image: us.gcr.io/cool-project-123456/dev-box:latest
这里似乎只要build:
被注释并image:
存在,所有构建命令都会被忽略,而图像会被拉取。
解决方案
示例 1 并不总是运行。它仅在您没有该图像时运行:us.gcr.io/cool-project-123456/dev-box:latest
docker-compose up
总是首先使用您机器中的现有图像。
我的建议是保留
build: ./nginx
image: us.gcr.io/cool-project-123456/dev-box:latest
并使用
docker-compose up --build
docker-compose pull & docker-compose up
推荐阅读
- python - 使用特定的 conda env 运行 pipenv?
- r - 在 R 中使用 read_excel 手动分配列名
- python - 如何从文件中分割某些数字以将它们作为值放入字典中的列表中?
- reactjs - 反应验证表单,但提交时没有刷新
- amazon-dynamodb - AWS Scan 忽略 withLimit()
- pandas - 遍历 df.index 的唯一元素以找到列中的最小值
- node.js - Mongoose.countDocuments 在按去年创建的时刻 js 计算文档时不起作用
- c# - 如何将 CDPSession 与 puppeteersharp 拦截请求一起使用
- python - 为什么我得到“列表索引超出范围”?
- c++ - 为什么在不涉及复制时 std::string s = "123" 被视为复制初始化?