自定义lucee5泊坞窗图像,以允许在图像中运行多个网站

时间:2017-01-14 04:59:55

标签: docker-compose lucee

我使用docker-compose运行lucee5图像,效果很好。我能够将我的本地卷链接到dockerimages。 本地项目包含4个网站,这些网站都应在docker镜像中运行。 我希望能够像localhost:1337 / customer和localhost:1337 / player和localhost:1337 /等连接到它们。

因此,我必须在docker镜像上设置Apache,我知道该怎么做。但是,当我退出停止docker-compose并尝试使用新更改持久保存最后一个容器时,当我想使用compose(退出代码0)运行该新容器时,我会遇到错误消息。

我的最终目标是能够启动docker-compose以便我可以使用我的3个网站进行测试,并且我可以在IDE中本地处理项目,而docker正在运行相同的源。 我知道我可以将我的MYSQL数据库放在docker-image之外并引用它。

如何在更改图像时解决错误退出0?

我的Docker撰写文件

version: '2'

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

projectx有3个子文件夹,它们有3个运行index.cfm的cfml根:

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

我会在lucee5图像上用apache创建3个apache网站。

1 个答案:

答案 0 :(得分:3)

使用Lucee docker镜像运行3个应用程序的最简单方法是为docker compose文件中的每个应用程序定义一项服务,例如

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)访问每个应用程序,那么您可以添加一个充当每个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,通过卷添加到服务中。