Docker: развертывание контейнера приложения php без использования тома

Я работаю над веб-приложением с полным стеком, которое содержит интерфейс 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? Если это так, в зависимости от того, как настроен веб-сервер, вы можете просто удалить часть томов раздела apache.

Jonnix 20.03.2019 10:47

Ну да, я хочу, чтобы php-контейнер был собран локально на моем рабочем ПК, а затем отправлен через репозиторий gitlab на сервер. Файл docker-compose вытащит его оттуда. Но есть ли способ, которым контейнер веб-сервера не должен использовать том?

Clemens Basler 20.03.2019 10:56

Как я сказал. Это зависит от вашего конфига. Например. если ваш веб-сервер просто проксирует все запросы прямо на PHP (-FPM?), не касаясь тома, то это все равно не нужно.

Jonnix 20.03.2019 10:59

Ваш вопрос на самом деле, как вы можете заставить docker-compose использовать изображения, которые вы отправили в gitlab, а не перестраивать?

Jonnix 20.03.2019 11:01

Отлично, спасибо за подсказку для прямого проксирования на PHP. Да, наверное, я не был уверен в актуальной проблеме.

Clemens Basler 20.03.2019 11:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
172
0

Другие вопросы по теме