Как примонтировать конфигурационный файл в Docker-Compose?

В Docker-Compose, конфигурационные файлы могут быть примонтированы в контейнер с использованием опции volumes. Примонтирование конфигурационного файла позволяет изменять или обновлять настройки приложения без пересборки контейнера.

Для примера, предположим, что у вас есть следующая структура проекта:

my_project/
    docker-compose.yml
    app/
        Dockerfile
        config.ini

Для примонтирования файла config.ini в контейнере, откройте docker-compose.yml и добавьте секцию volumes в раздел services.

version: '3'
services:
  app:
    build:
      context: ./app
    volumes:
      - ./app/config.ini:/path/to/config.ini

В этом примере мы используем путь относительно docker-compose.yml (./app/config.ini) и указываем абсолютный путь /path/to/config.ini внутри контейнера, где файл будет доступен.

Теперь при запуске контейнера, файл config.ini будет примонтирован в указанную директорию внутри контейнера. Все изменения в файле config.ini будут видны как в хост-системе, так и внутри контейнера.

Это позволяет вам настраивать приложение, используя конфигурационный файл, без необходимости перезапуска контейнера или изменения самого образа Docker. Когда изменения в файле config.ini внесены, вы можете просто перезапустить контейнер (с помощью docker-compose restart app), чтобы они вступили в силу.

Примечание: Вы должны убедиться, что путь к config.ini верен и файл доступен на хост-системе в указанном пути. Если файл не существует, Docker-Compose создаст его для вас. Также следует учитывать права доступа к файлу (например, права на чтение), чтобы приложение внутри контейнера могло его использовать.

Это очень полезное свойство Docker-Compose, позволяющее легко управлять настройками и конфигурацией приложения в контейнере, не требуя изменения самого приложения или его контейнера.