一、前言

项目使用了QQ邮箱发送邮件,自己又老是忘记QQ密码,每次改完密码授权码都需要更改。 授权码写在代码中的话每次修改授权码都需要改代码提交。 如果把授权码放到GitLab CI的变量里面呢?(应该要放到数据库吧 ::(狗头) ) 说干就干 😡(中刀)

二、 开干

1. GitLab CI

添加一个 ** EMAIL_CODE ** 变量Snipaste_2022-04-20_15-50-53.png

2. gitlab-ci.yml

#使用 --build-arg把参数传递给Dockerfile
docker build --build-arg EMAIL_CODE=$EMAIL_CODE

3. Dockerfile

# 使用ARG获取 docker build传递的参数
ARG EMAIL_CODE
# 使用ENV 声明变量
ENV EMAIL_CODE=$EMAIL_CODE

# 项目启动命令
CMD npx egg-scripts start --EMAIL_CODE=$EMAIL_CODE

完事!!! 这样就把一个GitLab CI变量传递到了项目里 😡(鼓掌)

参考文档: https://docs.docker.com/engine/reference/builder/#arg