У меня возникли трудности с настройкой 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
просто имеет значение CREDENTIALS
, и я очевидно, что не нужно жестко закодировать значение в конфигурацию.
Если кто-нибудь знает способ заставить эту работу или альтернативный обходной путь для передачи значения, он будет очень признателен.