在Dockerfile中获取GitLab CI的变量给项目使用
一、前言
项目使用了QQ邮箱发送邮件,自己又老是忘记QQ密码,每次改完密码授权码都需要更改。 授权码写在代码中的话每次修改授权码都需要改代码提交。 如果把授权码放到GitLab CI的变量里面呢?(应该要放到数据库吧 ::(狗头) ) 说干就干 😡(中刀)
二、 开干
1. GitLab CI
添加一个 ** EMAIL_CODE ** 变量
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
