尝试为项目设置circleCI时遇到了一些困难。我有一个需要与几个自定义docker映像进行交互的应用程序(并且需要连接到端口,这排除了在主容器中运行自定义容器的情况)。我想将circleCI环境变量CREDENTIALS
(包含gcloud凭据)传递给其中一个docker映像的环境变量。由于不支持插值,因此我尝试使用参数,但是仍然传递的只是参数的名称,而不是参数的值。
config.yml
的精简版本是:
version: 2.1
orbs:
gcp-cli: circleci/gcp-cli@1.3.0
jobs:
test:
parameters:
gcloud_cred:
type: env_var_name
default: CREDENTIALS
docker:
- image: circleci/python:3.6.4
- image: custom_image_1:latest
environment:
ENV: test
- image: custom_image_2:latest
name: database
environment:
GCLOUD_CREDENTIALS: << parameters.gcloud_cred >>
working_directory: ~/app
steps:
- checkout
- setup_remote_docker
- run:
name: do the rest
command: |
sh do_all_stuff.sh
workflows:
version: 2.1
test:
jobs:
- test:
gcloud_cred: CREDENTIALS
我尝试了其他组合,例如在工作流中使用${CREDENTIALS}
和字符串类型的参数,但是每次在custom_image_2
中,env变量GCLOUD_CREDENTIALS
都只有值{{1} },而我显然不想将值硬编码到配置中。
如果有人知道一种方法来完成这项工作,或者可以通过另一种变通方法来传递值,将不胜感激。