Обновить

Работа docker compose с файлами переменных окружения

  1. После изменения конфигурации нужно пересоздать контейнер, для чего делать не просто "docker compose start", а "docker compose up".

  2. docker compose по умолчанию читает файл .env, который находится в том же директории, что и compose.yaml. Переменные окружения из этого файла доступны в файле compose.yaml.

Например:

services:
  telebot:
    image: ${IMAGE_NAME}

Здесь переменная ${IMAGE_NAME} определена в .env файле.

  1. можно передать переменные окружения из файла в compose.yaml при помощи ключа --env-file.

Например:

docker compose --env-file=tokens.env up -d
  1. Передать файл переменных окружения в контейнер можно в файле compose.yaml.

Например:

  services:
    telebot:
      image: ${IMAGE_NAME}
      build:
        context: app
        dockerfile: Dockerfile
      env_file: "./tokens.env"
  1. Или несколько файлов:

  services:
    telebot:
      image: ${IMAGE_NAME}
      build:
        context: app
        dockerfile: Dockerfile
      env_file:
        - "./tokens.env"
        - "./.container.env"

Мне нравится способ 5), т.к:

  • Не нужно перечислять перемнные окружения в файле compose.yaml

  • Можно иметь несколько файлов переменных окружения. Например общий файл и файл с секретами.

Секреты можно передавать и по другому, еще более секретно, как описано в https://docs.docker.com/compose/use-secrets/, но я не пробовал.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Метод Каллана: я повторял предложения три года

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

Фото: little Gabriel, Unsplash

Мне было четырнадцать, когда я решил, что школа не научит меня английскому.

Шёл 2009 год. Я учил немецкий и не любил его — не сам язык, а тот факт, что его выбрали за меня. К тому времени я уже писал первые строки кода и заметил вещь, которая казалась мне очевидной и, судя по всему, никому вокруг: любой язык программирования, который я хотел выучить, был документирован на английском. Любой ответ на форуме. Любое сообщение об ошибке. Любая книга, которую стоило читать.

Так что я попросил записать меня куда-нибудь всерьёз. Так я оказался в Британский Центр в Тбилиси, в двухэтажном здании на улице Пекини, в комнате с одиннадцатью другими людьми и преподавателем, который говорил быстрее, чем я успевал думать.

Метод Каллана: я повторял предложения три года

Публикации