docker build --build-arg 传参到 Dockerfile
docker build 命令用于使用 Dockerfile 创建镜像。
- –build-arg=[] :设置镜像创建时的变量
Dockerfile 中使用的镜像有 env 参数,代表打包环境,需要从外部脚本传入,脚本如下:
docker build --build-arg env="develop" -t xxx.com/xxx/rladmin:221027.1 .
对应的 Dockerfile 文件如下:
FROM node:16-stretch as builder
# FROM 之后还要使用该参数的话,需要重新引入一下
ARG env
# 参数使用时要用 ${} 括起来
RUN echo "current---: ${env}"
# => [builder 6/11] RUN echo "current---: ty-test"
# 参数使用时要用 ${} 括起来
RUN npm run build:${env}
检查env是否合法
env内置有develop、test、product,对应开发、测试,生产三种环境。我们在创建镜像的时候,判断我们设置的env是否符合内置的设定。
ARG env
RUN echo ">>> 当前构建环境是: ${env}"
# 利用shell,检查service是否合法
RUN touch tmp.sh
RUN chmod +x tmp.sh
RUN echo $'if [[ "$env" =~ ^(develop)|(test)|(product)$ ]] \n\
then \n\
echo "构建: ${env}" \n\
else \n\
echo "请传入合法的 env 变量" && exit 1 \n\
fi' > /www/tmp.sh
RUN export env=${env} && tmp.sh
RUN tmp.sh
假如设置的env不符合内置设定,将通过exit 1 中断程序的执行。

浙公网安备 33010602011771号