Ответ 1
Docker не поддерживает это напрямую, но вы можете использовать DockerMake (полное раскрытие: я написал это), чтобы управлять таким "наследованием". Он использует файл YAML для настройки отдельных фрагментов изображения, затем управляет сборкой, создавая соответствующие файлы Docker.
Вот как вы могли бы построить этот несколько более сложный пример:
--> genericA --
/ \
debian:jessie --> customBase ---> specificAB
\ /
--> genericB --
Вы использовали бы этот файл DockerMake.yml
:
specificAB:
requires:
- genericA
- genericB
genericA:
requires:
- customBase
build_directory: [some local directory]
build: |
#Dockerfile commands go here, such as
ADD installA.sh
RUN ./installA.sh
genericB:
requires:
- customBase
build: |
#Here are some other commands you could run
RUN apt-get install -y genericB
ENV PATH=$PATH:something
customBase:
FROM: debian:jessie
build: |
RUN apt-get update && apt-get install -y buildessentials
После установки инструмента CLI docker-make
(pip install dockermake
) вы можете затем создать образ specificAB
, запустив
docker-make specificAB