Запускаются два контейнера, nginx и php-fpm.
Исходники (php файлы, ассеты, загруженные пользователями файлы) находятся в php-fpm в папке /app и nginx должен их видеть.
Лучшее, что смог накопать в сети, это сделать общий volume и при запуске контейнера php копировать всё из /app в этот volume. Но, во-первых, это дичь какая-то, потому что папка /app весит дофига (так серьёзно кто-то живёт?), а во-вторых, загружаемые пользователями файлы nginx не увидит.
Неужели нет никакого способа создать volume, который будет монтировать папку не с хоста, а из контейнера?
UPD Пример.
Первый контейнер:
docker build -t image -f Dockerfile .
docker run -d --name container1 -v app:/app image
DockerfileFROM alpine:3.9
WORKDIR /app
COPY index.html script.sh ./
CMD ["script.sh"]
index.html<h1>Hello, Docker!</h1>
script.sh
Скрипт, который в бесконечном цикле создаёт и изменяет файлы и папки в текущей директории, может что-нибудь скачивает из интернета, синхронизируется с какими-нибудь сервисами, неважно, главное, что файлы в /app меняются.
Второй контейнер:
docker volume create shared
docker run -d --name container2 -p 80:80 -v shared:/usr/share/nginx/html:ro nginx:1.13
И вот почему нельзя сделать так, чтобы volume, пробрасываемый в container2 был создан на основе папки в container1 и следил за её изменениями?