我有这个Dockerfile:
FROM python:2
# Large number of commands
我想创建扩展Dockerfile-py3
而不是python:3
的{{1}},但在其他方面相同。除了
python:2
我有什么解决方案可以避免冗余?
答案 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
。
其他文档:
Dockerfile
指令中python:latest
用法的ARG
的使用情况also from the official documentation