docker - 将环境变量传递给circleCI中的docker容器
问题描述
我在尝试为项目设置 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
只有 value CREDENTIALS
,我显然不想将 value 硬编码到配置中。
如果有人知道使这项工作的方法,或者能够传递价值的替代解决方法,将不胜感激。
解决方案
推荐阅读
- php - 带有 Dropzone 图像的 Doctrine ORM 映射中的 OneToMany
- dart - 获取 Google 登录验证和刷新令牌
- c# - SYNONYM 的 INSERT 语句在 SQL Server 中失败;有任何想法吗?
- machine-learning - 深度学习日志似然
- css - 如何使用伪元素选择以 foo 结尾的域的链接?
- javascript - 添加“悬停”与“滚动”相同的功能
- sql-server - 从 SQL Server 获取所有用户定义的对象
- javascript - Mongoose 更新多个子文档
- mysql - 在不同的表中使用相同的字段名然后进行联合查询有什么问题吗?
- python - SQLAlchemy:使用给定数组中的元素查询数据库列