使用 Docker-Compose 实现多个网站和 PHP 版本

Sha*_*rog 5 php nginx docker docker-compose

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

我使用 nginx 代理创建了一个 docker-compose 文件,它基本上可以工作。我的问题是,几个旧的 php 项目需要不同的 php 版本。

以下是我的撰写文件已经取得的进展:

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
Run Code Online (Sandbox Code Playgroud)

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

或者我总体上使用了错误的方式?最终将有大约 10 个 Magento 在线商店。

感谢您的帮助!

ldg*_*ldg 0

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

一般来说,您的命名似乎有点过于具体,这对于初始工作站来说可能没问题,但随着事情开始发生变化,维护起来就会变得更加困难。