tim*_*Tao 6 php mysql nginx docker docker-compose
我有docker-compose配置相同的项目(PHP,MySQL,nginx).当我运行一个项目时docker-compose up没有问题,但我需要每天在它们之间切换几次以进行开发.
问题:
Docker for Mac - 边缘现在只需运行up,down -v每次.大多数情况下,项目都是相同的PHP版本(应该是)和MySQL.
其中一个想法是在主文件夹中创建配置workspace,docker-compose一些负载均衡器将是一些规则将为给定项目生成域,其中卷为主文件夹,并且具有一个MySql服务器和少量DB - 但这是原始想法.
什么解决方案适用于特定情况?
版本:'2.1'
services:
app:
image: ${PHP_IMAGE}
volumes:
- ${COMPOSE_DIR}/../../:/var/www:cached
- ${COMPOSER_HOME}:/root/.composer:cached
depends_on:
- db
environment:
- SYMFONY_ENV=${SYMFONY_ENV-prod}
- SYMFONY_DEBUG
- SYMFONY_HTTP_CACHE
- SYMFONY_HTTP_CACHE_CLASS
- SYMFONY_TRUSTED_PROXIES
- DATABASE_USER
- DATABASE_PASSWORD
- DATABASE_NAME
- DATABASE_HOST=db
web:
image: ${NGINX_IMAGE}
volumes_from:
- app:ro
ports:
- "8080:80"
environment:
- SYMFONY_ENV=${SYMFONY_ENV-prod}
- MAX_BODY_SIZE=20
- FASTCGI_PASS=app:9000
- TIMEOUT=190
- DOCKER0NET
command: /bin/bash -c "cd /var/www && cp -a doc/nginx/ez_params.d /etc/nginx && bin/vhost.sh --template-file=doc/nginx/vhost.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
db:
image: ${MYSQL_IMAGE}
volumes:
- ${COMPOSE_DIR}/entrypoint/mysql:/docker-entrypoint-initdb.d/:ro
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=1
- MYSQL_USER=$DATABASE_USER
- MYSQL_PASSWORD=$DATABASE_PASSWORD
- MYSQL_DATABASE=$DATABASE_NAME
- TERM=dumb
Run Code Online (Sandbox Code Playgroud)
鉴于此,正如我所说,我希望运行具有不同PHP版本的项目.每个都有相同的nginx配置,然后需要以某种方式有可能轻松和同时运行它们.
理解@Vladimir Kovpak的答案,但手动这种方式会产生很多工作.每个项目都有自己的docker-compose配置.
可以同时使用所有项目.第一步是提议 - 任何初始化和结束都没关系,因为不痛苦 - 应该快速而简单.
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |