Использование переменной среды в файле docker контейнер - PullRequest
0 голосов
/ 07 апреля 2020

Я устанавливаю переменную среды в контейнере docker, значение которого я получаю во время выполнения.

  env:
    - name: POD_INFO
      value: {{ Values.resolved_when_the_container_starts }}

Я хочу использовать это значение в файле XML. Есть ли способ, которым я могу сделать это?

Что-то вроде

<property>
   <name>pod.info</name>
   <value>this place should pick up the value from that environment variable</value>
</property>

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Вы можете использовать envsubst и вызывать его в вашем entrypoint.sh скрипте. Сначала вам нужно будет определить переменную, а затем заменить ее на envsubst.

kminehart очень хорошо объясняет, как envsubst работает в одном из github случаев .

# mytemplate.tmpl  
apiVersion: extensions/v1beta1  
kind: Deployment  
# ...  
architecture: ${GOOS}  
GOOS=amd64 envsubst < mytemplate.tmpl > mydeployment.yaml  
# mydeployment.yaml  
apiVersion: extensions/v1beta1  
kind: Deployment  
# ...  
architecture: amd64  

Другой способ подстановки env - sed. Здесь - хорошая статья, которая показывает, как это работает.

sed -i -g "s/[target_expression]/[replace_expression/g" <file> 
0 голосов
/ 07 апреля 2020

Ни Kubernetes, ни Helm не предоставляют возможности шаблонов ConfigMaps или любых других файлов. Вероятно, вы ищете init container , который запускается перед вашим контейнером и может выполнять любой пользовательский скрипт, который вы хотите. Затем вы можете изменить файл конфигурации с помощью переменной среды.

...