【问题标题】:Gitlab Secret Variable >>> Spring Boot application.ymlGitlab 秘密变量 >>> Spring Boot application.yml
【发布时间】:2019-05-23 12:00:28
【问题描述】:

如何在 application.yml 中引用 gitlab 秘密变量?我认为它只能在 gitlab-ci.yml 上下文中访问,并且必须以某种方式作为 VM 参数从那里移动到 Docker 映像中?

以防万一,我在 Rancher 环境中进行部署。

【问题讨论】:

    标签: spring spring-boot docker gitlab gitlab-ci


    【解决方案1】:

    只需export 它或作为命令行参数传递给您CI 脚本。喜欢:

    gitlab-ci.yml

    deploy-app:
      stage: deploy
      image: whatever
      script:
        - export MY_SECRET
        - ...
    

    或

    deploy-app:
      stage: deploy
      image: whatever
      script:
        - docker run -it -e PASSWORD=$MY_SECRET whatever ...
    

    【讨论】:

    • 感谢您的回复!我已经尝试过- export MY_SECRET,但是牧场主 Job 仍然终止,因为没有变量就无法初始化 bean。是否有可能我在错误的项目中设置了秘密变量?微服务项目构建,而不是运行(我在您的回复中看到docker run)docker-image。这是另一个项目,它组成了一个 Rancher 堆栈,该堆栈拉取 docker 映像然后运行它。或者可以在构建和运行时都注入变量吗?
    • 尝试-echo $MY_SECRET 然后export NEW_SECRET=$MY_SECRET。第一条语句将显示您是否已对其进行初始化,第二条语句将其导出到不同名称的脚本中
    • 你确定我需要 $-prefix 吗?在 gitlab-GUI 中,变量没有 $
    • 正如@grapes 所说你需要$ 前缀,更多关于gitlab-ci 中的变量你可以找到here
    • 好的,谢谢!我可以在 Gitlab-CI-Pipeline 中看到带有变量值的回声输出。但是当rancher-compose项目初始化之前构建的docker-image时,我仍然得到错误java.lang.IllegalArgumentException: Could not resolve placeholder 'NEW_SECRET' in value "${NEW_SECRET}"(在Rancher-Runner的日志中)
    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 2022-01-09
    • 2020-06-09
    • 2018-12-26
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多