php - 使用 Docker-Compose 的多个网站和 PHP 版本

标签 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

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

还是我一般使用错误的方式?最终将有大约 10 个 Magento 在线商店。

感谢您的帮助!

最佳答案

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

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

关于php - 使用 Docker-Compose 的多个网站和 PHP 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356585/

相关文章:

spring-boot - 本地docker服务的Spring Boot Kafka连接问题

javascript - 检查我的 php BD 上是否存在元素并将其显示在 html 上

php - SugarCRM 按需将 TextField 转换为 DropDown

python - 动态路由,生产环境中的tornado部署

java - NGINX 与 Tomcat 配置

php - 如何在docker容器中连接我的主机mysql?

docker - 如何使 kubernetes docker secret 工作?

PHP脚本无法格式化日期

php - 如何在下拉列表中获取所选选项的ID?

linux - Docker容器与其他机器之间的连接问题