Я работаю над веб-приложением с полным стеком, которое содержит интерфейс angular2, серверную часть php и базу данных mongodb. В настоящее время они работают на сервере Windows с использованием WAMP (http://www.wampserver.com/en/). Я хочу докеризовать этот стек и в итоге иметь три работающих контейнера докеров на сервере Windows. Для развертывания я хочу использовать репозиторий gitlab, где будут размещаться образы докеров.
Я искал руководства по докеризации php-приложения, но все они полагаются на использование объема сервера. Скачивание и выполнение одного файла docker-compose.yml для развертывания кажется мне совершенно нормальным, но я не хочу развертывать код на сервере.
Вот пример файла docker-compose из учебника: (https://www.cloudreach.com/blog/containerize-this-php-apache-mysql-within-docker-containers/)
version: "3.2"
services:
php:
build: './php/'
networks:
- backend
volumes:
- ./public_html/:/var/www/html/
apache:
build: './apache/'
depends_on:
- php
- mysql
networks:
- frontend
- backend
ports:
- "8080:80"
volumes:
- ./public_html/:/var/www/html/
mysql:
image: mysql:5.6.40
networks:
- backend
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
networks:
frontend:
backend:
Файл docker-compose может извлекаться из частных репозиториев. Поэтому я хочу использовать такой файл для загрузки и настройки трех контейнеров. Но в примерах кажется, что код нужен на сервере. Изображения создаются локально, чего я хочу полностью избежать.
Итак, мой запрос: Есть ли способ разместить серверный контейнер php с помощью apache или nginx без использования тома?
Ну да, я хочу, чтобы php-контейнер был собран локально на моем рабочем ПК, а затем отправлен через репозиторий gitlab на сервер. Файл docker-compose вытащит его оттуда. Но есть ли способ, которым контейнер веб-сервера не должен использовать том?
Как я сказал. Это зависит от вашего конфига. Например. если ваш веб-сервер просто проксирует все запросы прямо на PHP (-FPM?), не касаясь тома, то это все равно не нужно.
Ваш вопрос на самом деле, как вы можете заставить docker-compose использовать изображения, которые вы отправили в gitlab, а не перестраивать?
Отлично, спасибо за подсказку для прямого проксирования на PHP. Да, наверное, я не был уверен в актуальной проблеме.






Как без использования тома, особенно в контейнере веб-сервера? Я предполагаю, что вы все еще хотите, чтобы он был в контейнере php? Если это так, в зависимости от того, как настроен веб-сервер, вы можете просто удалить часть томов раздела apache.