将环境变量传递给circleCI中的Docker容器

时间:2020-04-20 08:58:11

标签: docker circleci

尝试为项目设置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} },而我显然不想将值硬编码到配置中。

如果有人知道一种方法来完成这项工作,或者可以通过另一种变通方法来传递值,将不胜感激。

0 个答案:

没有答案