секреты docker-compose без режима роя: как импортировать их значения?

Есть некоторые вопросы об использовании секретов сdocker-composeбез режима роя, но при попытке следовать некоторым из них мне так и не удалось прочитать секреты внутри работающего контейнера.

Подход №1

docker-compose.yml:

      version: "3.8"

services:
  server:
    image: alpine:latest
    secrets:
      - sec-str
    environment:
      - TE_STR=${sec-str}
    command: tail -F .

secrets:
  sec-str:
    file: ./secret.s

:

      sec-str="A!Bit@complicated-String^%"

Исход:


Подход №2

Изменения вносятся только здесь, вsecret.s:

      "A!Bit@complicated-String^%"

Исход:

      / # echo $TE_STR
str

Подход №3

TE_STR=${sec-str}заменено наTE_STR=$sec-str.

Исход:

      / # echo $TE_STR
-str

Кончились идеи на данный момент. Любые подсказки от вас?

1 ответ

Секреты по-прежнему являются файлами внутри контейнера. Вы можете найти свой по адресу:

      /run/secrets/sec-str

Если вам это нужно как переменная среды en, сделайте следующее:

      environment:
   - TE_STR_FILE=/run/secrets/sec-str

Это установит TE_STR на содержимое вашего секрета.

Другие вопросы по тегам