很多时候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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
60分钟部署Oracle 21c RAC
王先生
248次阅读
2025-03-04 16:31:52
玩转DeepSeek系列:使用OCI GPU快速部署推理模型
甲骨文云技术
98次阅读
2025-03-03 09:46:33
EMQX MCP Server:实现 Claude 与 MQTT 交互新可能
EMQX
42次阅读
2025-03-07 10:29:52
docker下mysql升级
在路上
37次阅读
2025-03-02 19:55:18
如何使用 RisingWave 和 PuppyGraph 构建高性能实时图分析框架
RisingWave中文开源社区
29次阅读
2025-03-18 10:49:54
详细到没朋友的 NebulaGraph 桌面版部署指南
NebulaGraph 技术社区
25次阅读
2025-03-07 10:29:53
一键部署 GPU Kind 集群,体验 vLLM 极速推理
Se7en的架构笔记
20次阅读
2025-03-24 09:41:41
NineData 社区版初体验,大超预期
老叶茶馆
16次阅读
2025-03-18 10:45:49
下一代DBA必备技能
Bytebase
10次阅读
2025-03-28 14:59:40
使用Docker五分钟快速安装配置oracle数据库【最新版】【测试成功】
巴韭特锁螺丝
10次阅读
2025-03-10 08:47:21