假设我有一组图像,这些图像取决于共同的基本图像:

  • base(这只是一组常见的依赖项)

    FROM ubuntu:16.04
    
    ENV FOO 1
    
  • child1

    FROM mybaseimage  # where mybaseimage corresponds to base
    
    CMD ["bar1_command"]
    
  • child2

    FROM mybaseimage  # where mybaseimage corresponds to base
    
    CMD ["bar2_command"]
    

  • 是否可以创建docker-compose文件,而无需运行它就可以构建base?可以说我有以下依赖性:
    version: '2'
    services:
        child1:
            build: ./path-to-child1-dockerfile
    services:
        child2:
            build: ./path-to-child2-dockerfile
        depends_on:
            - child1
    

    我希望base可以构建,即使未显式启动。这样的事情可能吗?还是我应该简单地使用外部Makefile建立依赖关系?
    build_base:
        docker build -t mybaseimage mybaseimage
    
    build_all: build_base
        docker-compose build
    

    最佳答案

    使用Makefile。 docker-compose并非旨在构建镜像链,而是为运行容器而设计。

    您可能还对dobi感兴趣,它是一个旨在与docker镜像和容器一起使用的构建自动化工具(如make)。

    免责声明:我是 dobi 的作者

    10-06 12:35