Как установить переменную среды в супервизоре - PullRequest
0 голосов
/ 07 мая 2018

У меня есть файл supervisord, где, как это

[program:decrypt]
command=export KEYTOKEN=$(aws kms decrypt --ciphertext-blob fileb://<(echo %(ENV_TOKENENC)s | base64 -d) --output text --query Plaintext --region %(ENV_REGION)s | base64 -d )

Я передаю среду ENV_TOKENENC, ENV_REGION в контейнер, и я могу отразить эти переменные и подтвердить, что докер-контейнер их получает, также работает команда для расшифровки значения kms. Но когда я помещаю команду kms decrypt в команду supervised файл выдает ошибку с сообщением ('ENV_REGION') & ('ENV_CONSULTOKENENC'), которая не может быть расширена. Я помещаю правильное значение в файл supervisord?

1 Ответ

0 голосов
/ 07 мая 2018

Задать переменную среды легко, если вы установите постоянное значение:

[program:decrypt]
command=/usr/bin/env foo=bar baz=qux /path/to/something ...

или с меньшими накладными расходами:

environment=foo="bar",baz="qux"
command=/path/to/something ...

Однако, для динамического генерирования значения этой переменной требуется оболочка:

[program:decrypt]
command=/bin/sh -c 'foo=$(generate-bar) /path/to/something'

Обратите внимание, что export здесь на самом деле не требуется, так как var=value something как часть одной команды экспортирует var, имеющее значение value во время выполнения something.

...