Можно ли с помощью docker-compose перезапустить контейнер при изменении файла? - PullRequest
0 голосов
/ 17 марта 2019

Docker-compose хорош - использование docker-composer up -d перезапустит все контейнеры, в которых docker-compose.yml изменился.Это не произойдет, если я изменил traefik.toml, который должен прочитать один из моих контейнеров при запуске.

Можно ли сделать так, чтобы docker-composer учитывал произвольные файлы при воссоздании контейнеров?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Вы можете, если вы настроите том для своих файлов (пример ниже), или определите местонахождение тома в вашей системе, когда его создает докер.

volumes:
    - type: bind
      source: .
      target: /srv/www

Просто установите команду watch или cronjob для проверки файлов. Если изменение найдено, вы можете просто cd {build dir} && docker-compose down && docker-compose up -d

Я рекомендую вам иметь скрипт для запуска как watcher, так и docker-compose или псевдоним для простоты использования.

В качестве альтернативы, вы можете заставить docker-контейнер проверять свои собственные файлы, а если он видит изменение, просто exit. Запустите скрипт cronjob или watch, который запускается docker-compose up -d в ответ на неработающий контейнер.

0 голосов
/ 18 марта 2019

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

Чтобы имитировать такое поведение, вы можете расширить точку входа изображения и обрабатывать такое использование.дело самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...