Как стать автором
Поиск
Написать публикацию
Обновить

Работа 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

Публикации

Ближайшие события