我正在使用docker compose使用docker构建我的应用程序。
docker-compose的版本为2.2
在其中一个容器正在运行nginx的那一刻,我的所有容器都运行良好。
我需要在此容器上更改一些配置。
由于特殊情况,我需要做的是更新容器内的配置。
然后我提交容器以构建新图像。
docker commit <container> <image-name>
现在我有了带有最新标签的新图像。
我想要的是在运行时使用此映像,docker-compose down && docker-compose up-下次构建。
docker-compose down && docker-compose up --build -d
使用--build选项,docker-compose将执行Dockerfile中的步骤并运行这些步骤,我的所有更改都将被还原。
问题: 无论如何,我可以告诉docker-compose使用新创建的映像作为缓存,而忽略该容器的Dockerfile吗?
解决方案: 我已经尝试过使用docker-compose-override并使用选项cache-from,但无法正常工作。
docker-compose.override.yml
container:
build:
cache_from:
- new-image:latest
谢谢。
答案 0 :(得分:0)
即使您已经通过docker-commit构建了映像,我也不明白您为什么要从docker-compose构建映像。
现在我有了带有最新标签的新图像。 我想要的是在运行时使用此图像,docker-compose down && docker-compose up
如果您已经构建了映像,请跳过docker-compose中的build
阶段。只需指定应该使用哪个图像即可,
container:
image: new-image:latest
container_name: "Foo bar"
.....(other options)
指定要从中启动容器的图像。可以是 存储库/标签或部分图片ID。
image: redis image: ubuntu:14.04 image: tutum/influxdb image: example-registry.com:4000/postgresql image: a4bc65fd
如果图像确实 不存在,除非您也指定了Compose尝试拉它 构建,在这种情况下,它将使用指定的选项和标签进行构建 并带有指定标签。
如果您从docker-compose内部构建了其他映像,请运行:
docker-compose build && docker-compose up
如果不是简单的docker-compose up
就足够了。