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 中断程序的执行。

posted @ 2023-04-23 17:28  李小菜丶  阅读(2577)  评论(0)    收藏  举报