Мне нужно как-то запустить мое PHP-приложение в Swarm (возможно, мы рассмотрим kubernetes, если это будет проще). Мы хотим разделить контейнеры nginx и php, чтобы мы могли масштабировать их независимо. Но есть проблема, nginx должен как-то иметь доступ к этим статическим файлам.
Как бы вы решили эту ситуацию?
Наша первая идея заключается в том, что в CI версионные скомпилированные ресурсы будут включены в образ Nginx. Но что делать, если я хочу обновить контейнеры моего приложения? Мне нужны старые и новые активы. Или я должен использовать какой-то постоянный том и обновить его с помощью CI? Но я не уверен, как я могу это сделать …
Постоянный объем, вероятно, лучший способ сделать это. Контейнеры Docker могут монтировать тома NFS. Создайте контейнер для NFS-сервера для общих файлов. Вот один из многих контейнеров, доступных на Docker Hub: https://hub.docker.com/r/itsthenetwork/nfs-server-alpine/
Вот пример того, как настроить тома NFS для использования с контейнерами. https://gist.github.com/ruanbekker/4a9c0d250bce9f84482f2a788ce92131
Имейте в виду, что адрес сервера должен быть адресом контейнера NFS.
Других решений пока нет …