我正在用 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/

10-16 16:46