我有 dockerfile
FROM centos:7 ENV foo=42
然后我建立它
docker build -t my_docker .
并运行它。
docker run -it -d my_docker
是否可以从命令行传递参数并将其与 Dockerfile 中的 if else 一起使用?我的意思是
FROM centos:7 if (my_arg==42) {ENV=TRUE} else: {ENV=FALSE}
并用这个论点构建。
docker build -t my_docker . --my_arg=42
它可能看起来不那么干净,但你可以让你的 Dockerfile(有条件的)如下:
FROM centos:7 ARG arg RUN if [[ -z "$arg" ]] ; then echo Argument not provided ; else echo Argument is $arg ; fi
然后将图像构建为:
docker build -t my_docker . --build-arg arg=45
或者