GitLab CI中Docker登录时,如何替代${CI_REGISTRY_PASSWORD}?
GitLab CI Docker登录的安全优化
之前使用的Docker登录命令会触发安全警告,命令如下:
before_script: - docker login registry.gitlab.com -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
收到的警告信息:
WARNING! using --password via the CLI is insecure. Use --password-stdin
WARNING! Your password will be stored unecrypted in /root/.docker/config.json
针对这个问题,直接利用GitLab内置的CI_REGISTRY_PASSWORD变量,通过管道将密码传入--password-stdin参数即可解决密码在CLI暴露的安全问题,修改后的命令如下:
before_script: - echo "${CI_REGISTRY_PASSWORD}" | docker login registry.gitlab.com -u ${CI_REGISTRY_USER} --password-stdin
关于密码未加密存储的警告:由于GitLab CI的运行环境是临时的,job结束后该环境会被销毁,所以/root/.docker/config.json中的密码不会被持久化保留。如果需要进一步降低风险,可以在job完成后添加清理命令:
after_script: - rm -f /root/.docker/config.json
内容的提问来源于stack exchange,提问作者chobo2
相关产品推荐
相关产品推荐

