首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Docker-Compose创建多个网站和PHP版本

使用Docker-Compose创建多个网站和PHP版本
EN

Stack Overflow用户
提问于 2016-07-14 00:01:15
回答 2查看 2.5K关注 0票数 4

目前,我正在构建自己的开发环境,因为我想摆脱MAMP。

我创建了一个带有nginx代理的docker-compose文件,它基本上正常工作。我的问题是,一些旧的php项目需要不同的php版本。

以下是我使用我的撰写文件所取得的进展:

代码语言:javascript
复制
version: '2'
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  project1:
    build: ./config/5.3.29/nginx/
    container_name: project1
    volumes:
        - ./project1/:/var/www/html
    links:
        - php-5.3.29:php        
    environment:
      - "VIRTUAL_HOST=project1.org"
    expose:
      - "8080"

  project2:
    build: ./config/5.6/nginx/
    container_name: project2
    volumes:
        - ./project2/:/var/www/html
    links:
        - php-5.6:php       
    environment:
      - "VIRTUAL_HOST=project2.de"
    expose:
      - "8081"

  php-5.3.29:
    build: ./config/5.3.29/php/
    container_name: php-5.3.29
    ports:
        - 9000:9000

  php-5.6:
    build: ./config/5.6/php/
    container_name: php-5.6
    ports:
        - 9001:9000

如您所见,我有两个项目。PHP容器需要从与项目相同的路径进行卷。有没有办法动态生成路径?项目3也将使用php 5.6。

还是说我用错了方法?最终将有大约10家Magento在线商店。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2016-07-14 01:30:22

您可以引用合成文件上的目录,如../sites:/var/www/html或类似目录。不确定当你说“动态”的时候,你是否需要额外的逻辑来生成路径。

一般来说,您的命名似乎有点太具体了,这对于初始工作站来说可能没问题,但随着情况的变化,它将更难维护。

票数 0
EN

Stack Overflow用户

发布于 2016-07-14 22:56:20

谢谢你的回答!

今天,我用这个docker-compose文件解决了我的问题:

代码语言:javascript
复制
version: '2'
services:
  nginx:
    build: ./config/nginx/
    container_name: nginx
    volumes_from:
        - www_data
    links:
        - php-5.3.29
        - php-5.5
    ports:
      - 80:80

  php-5.3.29:
    build: ./config/5.3.29/
    container_name: php-5.3.29
    volumes_from:
        - www_data

  php-5.5:
    build: ./config/5.5/
    container_name: php-5.5
    volumes_from:
        - www_data

  php-5.6:
    build: ./config/5.6/
    container_name: php-5.6
    volumes_from:
        - www_data

  www_data:
    image: tianon/true
    volumes:
      - .:/var/www/html

我删除了代理,并使用nginx配置来处理不同的网站。然后我可以像这样包含不同的php版本:

代码语言:javascript
复制
fastcgi_pass php-5.5:9000;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38356585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档