我正在用Docker-compose建造一盏灯.
在我的docker-compose.yml中,我有以下内容:
ubuntu-base: build: ./ubuntu-base webserver-base: build: ./webserver-base
webserver-base源自基于ubuntu的映像.在基于Web服务器的Dockerfile中:
FROM docker_ubuntu-base
ubuntu-base已建成
FROM ubuntu:14.04
现在,如果我执行docker-compose.yml,它不会构建基于ubuntu的映像,但它尝试构建基于Web服务器的映像并失败,因为它找不到基于ubuntu的映像.
输出:
$ 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的映像,这一切都有效.
为什么它不构建基于ubuntu的图像?
遗憾的是,构建顺序是docker-compose中缺少的功能,现在需要很多个月.
作为解决方法,您可以像这样链接容器:
ubuntu-base: build: ./ubuntu-base webserver-base: build: ./webserver-base links: - ubuntu-base
这样ubuntu-base就可以在webserver-base之前构建.