Как сделать livereload для php в Docker?

Доброго дня.
Не секрет, что главный минус докера заключается в неудобстве разработки: каждый раз после изменения файлов приходится делать docker cp с тем, чтобы скопировать изменения в контейнер. Однако, volume, казалось бы, предоставляет возможность связать директорию в контейнере с директорией на хост-машине.
FROM php:7.2.19-apache

VOLUME data /var/www/html
COPY data /var/www/html

# все остальные команды

Структура папок при этом такова:
- Dockerfile
- config
- data
-- app

После запуска контейнера ожидаю, что Докер будет автоматически обновлять соответствующую директорию (мапнет "data" к "var/www/html", то есть аналог "COPY data /var/www/html", то есть аналог volume ./data:/var/www/html в docker-compose). Однако этого не происходит. Изменяю файлы, однако версия в контейнере остается той же самой.

Что я сделал не так, или так и должно работать? Если да, то можно ли заставить докер автоматически обновлять директории по изменению файлов на диске?
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
VOLUME - это не аналог ключа -v при запуске контейнера или volume ./data:/var/www/html в docker-compose. Он просто создает хранилище на диске для контейнера и маппит его в дебри /var/lib/docker/volumes

Для монтирования локального каталога по-прежнему придется использовать ключ -v для докера или аналог в docker-compose.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы