【发布时间】:2019-05-23 12:00:28
【问题描述】:
如何在 application.yml 中引用 gitlab 秘密变量?我认为它只能在 gitlab-ci.yml 上下文中访问,并且必须以某种方式作为 VM 参数从那里移动到 Docker 映像中?
以防万一,我在 Rancher 环境中进行部署。
【问题讨论】:
标签: spring spring-boot docker gitlab gitlab-ci
如何在 application.yml 中引用 gitlab 秘密变量?我认为它只能在 gitlab-ci.yml 上下文中访问,并且必须以某种方式作为 VM 参数从那里移动到 Docker 映像中?
以防万一,我在 Rancher 环境中进行部署。
【问题讨论】:
标签: spring spring-boot docker gitlab gitlab-ci
只需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。第一条语句将显示您是否已对其进行初始化,第二条语句将其导出到不同名称的脚本中
java.lang.IllegalArgumentException: Could not resolve placeholder 'NEW_SECRET' in value "${NEW_SECRET}"(在Rancher-Runner的日志中)