
很多时候Dockerfile文件中需要定义变量,减少对Dockerfile文件的修改,在编译的时候从外部传入参数,这种情况可使用 ARG
参数,然后通过--build-arg
进行赋值。
例如:Dockerfile 如下 参数变量version 从外部传递进去,在构建镜像时,使用--build-arg version=版本号,进行传递
# server_dockerfile.v5.0.1FROM centos:centos7ARG version # 获取到外部的参数ENV BASE=/usr/local \ VERSION=$version \ ZCBUS_HOME=/usr/local/zcbus \ JAVA_HOME=$ZCBUS_HOME/jdk \ JRE_HOME=$ZCBUS_HOME/jdk/jre \ NLS_LANG=american_america.AL32UTF8 \ ZCBUS_CLUSTERID=0 ADD zcbus.${VERSION}.tar.gz $BASEWORKDIR $BASERUN mv zcbus.${VERSION} zcbus \ && . $ZCBUS_HOME/profile \ && bash $ZCBUS_HOME/.pub.sh \ && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeCOPY start.sh $ZCBUS_HOMECOPY initconfig.sh $ZCBUS_HOMERUN chmod +x $ZCBUS_HOME/initconfig.sh \ && chmod +x $ZCBUS_HOME/start.shWORKDIR $ZCBUS_HOMECMD ["/bin/bash","-c","$ZCBUS_HOME/start.sh"]
构建
docker build -f dockerfile/server_dockerfile.v5.0.1 -t server:v5.0.1 zcbus_server --build-arg version=v5.0.1
参考
https://majing.io/posts/10000052201239
文章转载自运维笔记本,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




