настроить образ докера lucee5, чтобы разрешить запуск нескольких веб-сайтов в образе

Я запускаю образ lucee5 с помощью docker-compose, и это работает хорошо. Мне удалось связать мой локальный том с образами докеров. локальный проект содержит 4 веб-сайта, которые должны работать в образе докера. Я хотел бы иметь возможность подключаться к ним, например, localhost: 1337/customer и localhost: 1337/player и localhost: 1337/etc..

Поэтому для этого мне нужно настроить Apache на образ докера, что я знаю, как это сделать. Однако, когда я выхожу из остановки docker-compose и пытаюсь сохранить последний контейнер с новыми изменениями, я получаю сообщение об ошибке, когда хочу запустить этот новый контейнер с помощью компоновки (код выхода 0).

Моя конечная цель — иметь возможность запускать docker-compose, чтобы у меня были 3 веб-сайта, доступные для тестирования, и я мог работать над проектом локально в своей IDE, в то время как docker работает с тем же исходным кодом. Я знаю, что могу поместить свою базу данных MYSQL также за пределы образа докера и ссылаться на нее.

Как мне решить эту ошибку выхода 0 при изменении моего изображения?

Мой файл Docker Compose

version: '2'

services:
  web:
  image: lucee/lucee5
  ports:
  - "1337:8888"
volumes:
  - /Users/matti/www/projectx/:/var/www/

Projectx имеет 3 подпапки, в которых есть 3 корня cfml, в которых запускается index.cfm:

projectx/customer/root -> index.cfm
projectx/play/root -> index.cfm
projectx/tracker/root -> index.cfm

Я бы сделал 3 веб-сайта apache в apache на изображении lucee5.


person Mattijs    schedule 14.01.2017    source источник
comment
Пожалуйста, предоставьте свой Dockerfile. Кроме того, вы можете использовать docker-compose для простого управления стеком — как только я увижу ваш Dockerfile, я могу посоветовать изменения, чтобы сделать его немного проще. Docker лучше всего использовать с контейнерами для каждой задачи.   -  person Simon at My School Portal    schedule 14.01.2017
comment
Я обновил историю, как просили   -  person Mattijs    schedule 15.01.2017


Ответы (1)


Самый простой способ запустить 3 приложения с использованием образа докера Lucee — определить службу для каждого из них в файле компоновки докера, например.

version: '2'

services:
  customer-app:
    image: lucee/lucee5
    ports:
      - "8001:8888"
    volumes:
      - /your/path/to/projectx/customer/root:/var/www
      # the line below is an example of how to customise the lucee-web.xml.cfm for this app
      - /your/path/to/projectx/customer/lucee/lucee-web.xml.cfm:/opt/lucee/web/lucee-web.xml.cfm
  play-app:
    image: lucee/lucee5
    ports:
      - "8002:8888"
    volumes:
      - /your/path/to/projectx/play/root:/var/www
  tracker-app:
    image: lucee/lucee5
    ports:
      - "8003:8888"
    volumes:
      - /your/path/to/projectx/tracker/root:/var/www

Если вам нужно получить доступ к каждому приложению через одно имя хоста, но разные URL-пути (например, mydomain.local/customer, mydomain.local/play, mydomain.local/tracker), вы можете добавить один контейнер Apache, который действует как обратный прокси-сервер. в каждый из 3 контейнеров Lucee.

Дополнительный сервис для вашего файла docker compose будет выглядеть примерно так:

  apache:
    image: httpd
    ports:
      - "80:80"
    volumes:
      - /your/path/to/projectx/apache/httpd.conf:/usr/local/apache2/conf/httpd.conf

Ваша конфигурация Apache может войти в httpd.conf, который добавляется к службе через том.

person justincarter    schedule 18.01.2017
comment
Насколько я понимаю, при такой настройке мы одновременно запускаем четыре разных док-контейнера? Я попробую сейчас и дам вам знать, как это происходит. Спасибо. - person Mattijs; 22.01.2017
comment
Одно замечание, которое я должен сделать, заключается в том, что мне нужно добавить сопоставления к образу Lucee, которые настроены в администраторе Lucee и должны быть доступны. Поэтому я попытаюсь исправить образ Lucee и зафиксировать в нем эти новые изменения. Раньше я получал сообщения Exit 0 после изменения изображения. Посмотрим, что произойдет сейчас - person Mattijs; 22.01.2017
comment
Правильно, вы будете использовать 3 контейнера Lucee и 1 контейнер Apache. Я дополню приведенный выше файл компоновки докеров примером того, как добавить том, который позволит вам настроить каждый файл lucee-web.xml.cfm. - person justincarter; 23.01.2017
comment
Спасибо. Я сейчас в отпуске на пару недель, так что пока не смогу попробовать - person Mattijs; 27.01.2017