如何创建两个其他相同的容器来扩展不同的图像

时间:2018-06-25 07:54:48

标签: dockerfile

我有这个Dockerfile:

FROM python:2

# Large number of commands

我想创建扩展Dockerfile-py3而不是python:3的{​​{1}},但在其他方面相同。除了

python:2

我有什么解决方案可以避免冗余?

1 个答案:

答案 0 :(得分:1)

您可以将build-arg的{​​{1}}选项与docker build的{​​{1}}和ARG伪指令一起使用,以获得所需的结果,如下所示:

FROM的示例:

Dockerfile

现在,如果构建时没有任何Dockerfile,则其默认值为ARG REPOSITORY_AND_TAG=python:2.7 FROM ${REPOSITORY_AND_TAG} # Large number of commands 中声明的build-arg。但是,如果使用python:2.7构建,则可以这样选择替代值:

Dockerfile

在这种情况下,它将覆盖build-arg中的默认(docker build --build-arg REPOSITORY_AND_TAG=python:latest -t my-docker-image . )值,而您将最终得到python:2.7

其他文档: