我正在用 docker-compose build 一盏灯。
在我的 docker-compose.yml 中,我有以下内容:
ubuntu-base:
build: ./ubuntu-base
webserver-base:
build: ./webserver-base
webserver-base 源自 ubuntu-base 镜像。
在基于网络服务器的 Dockerfile 中:
FROM docker_ubuntu-base
ubuntu-base 搭建完成
FROM ubuntu:14.04
现在,如果我执行 docker-compose.yml,它不会构建 ubuntu-base 镜像,但它尝试构建 webserver-base 镜像并失败,因为它没有找到 ubuntu-base 镜像。
输出:
$ docker-compose up -d
Building webserver-base
Step 1 : FROM docker_ubuntu-base
Pulling repository docker.io/library/docker_ubuntu-base
ERROR: Service 'webserver-base' failed to build: Error: image library/docker_ubuntu-base:latest not found
如果我首先手动构建 ubuntu-base 镜像,这一切都有效。
为什么它不构建 ubuntu-base 镜像?
最佳答案
可悲的是,构建排序是 docker-compose 中缺少的功能,现在已经请求了好几个月了。
作为解决方法,您可以像这样链接容器:
ubuntu-base:
build: ./ubuntu-base
webserver-base:
build: ./webserver-base
links:
- ubuntu-base
这样 ubuntu-base 在 webserver-base 之前构建。
关于docker - 使用 compose 有序构建嵌套的 docker 图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34391582/