目前,我正在构建自己的开发环境,因为我想摆脱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在线商店。
谢谢你的帮助!
发布于 2016-07-14 01:30:22
您可以引用合成文件上的目录,如../sites:/var/www/html或类似目录。不确定当你说“动态”的时候,你是否需要额外的逻辑来生成路径。
一般来说,您的命名似乎有点太具体了,这对于初始工作站来说可能没问题,但随着情况的变化,它将更难维护。
发布于 2016-07-14 22:56:20
谢谢你的回答!
今天,我用这个docker-compose文件解决了我的问题:
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版本:
fastcgi_pass php-5.5:9000;https://stackoverflow.com/questions/38356585
复制相似问题