暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

给Dockerfile传递外部参数

运维笔记本 2021-03-15
8652

很多时候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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论