我目前的结构是构建了一个composer容器自动去构建,如果你的宿主机有composer你可以直接进入composer.json下使用就可以了,挂载了Volume数据卷会同步在容器内部的。
下面是我现在使用的compose文件
version: '3.0'
services:
##基础环境
nginx:
image: nginx:1.13.3
volumes:
- /etc/localtime:/etc/localtime:ro
#网站目录
- ./app:/var/www/html
- ./dockerfiles/nginx/conf.d:/etc/nginx/conf.d:ro
#日志文件
- ./logs/nginx:/var/log/nginx
links:
- "php-fpm:php-fpm"
ports:
- "80:80"
command: nginx -g 'daemon off;'
mysql-db:
image: mysql:5.5
#很重要导入到处数据
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data/mysql:/var/lib/mysql:rw
- ./logs/mysql:/var/lib/mysql-logs:rw
- ./dockerfiles/mysql/conf.d:/etc/mysql/conf.d:ro
environment:
MYSQL_ROOT_PASSWORD: zhaojun
MYSQL_DATABASE: lottery_api_sale
MYSQL_USER: zhaojun
MYSQL_PASSWORD: zhaojun
ports:
- "3306:3306"
deploy:
restart_policy:
condition: any
redis-db:
image: redis
volumes:
- ./data/redis:/data
- /etc/localtime:/etc/localtime:ro
deploy:
restart_policy:
condition: any
php-fpm:
build: ./dockerfiles/php/
restart: always
environment:
TP_APP_DEBUG: 'true'
volumes:
#网站目录
- ./app:/var/www/html:rw
#配置文件
- ./dockerfiles/php/php.ini:/usr/local/etc/php/php.ini:ro
- ./dockerfiles/php/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro
#挂载站点日志
- ./logs/php-fpm:/var/log/php-fpm:rw
depends_on:
- mysql-db
- redis-db
links:
- mysql-db:mysql-db
- redis-db:redis-db
command: php-fpm
##附加扩展安装器
composer:
image: composer:1.4.2
volumes:
- /etc/localtime:/etc/localtime:ro
- ./app:/app:rw
working_dir: /app/webroot
deploy:
restart_policy:
condition: none
command: composer install
bower:
image: digitallyseamless/nodejs-bower-grunt
volumes:
- /etc/localtime:/etc/localtime:ro
- ./app:/app:rw
working_dir: /app/webroot
deploy:
restart_policy:
condition: none
command: bower install
之前我没有构建bower composer,是直接在宿主机上进行构建的