102 lines
2.5 KiB
YAML
102 lines
2.5 KiB
YAML
|
|
services:
|
|
php-fpm:
|
|
build:
|
|
context: ./docker/php
|
|
dockerfile: Dockerfile
|
|
container_name: newshop_php
|
|
restart: always
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway" # 支持主机名解析
|
|
environment:
|
|
- PHP_ENV=development
|
|
- APP_ENV=development
|
|
- APP_DEBUG=true
|
|
- XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003
|
|
- PHP_IDE_CONFIG=serverName=docker-php
|
|
ports:
|
|
- "9000:9000" # PHP-FPM
|
|
- "9003:9003" # Xdebug
|
|
volumes:
|
|
- ./src:/var/www/html
|
|
# 更新下载源列表以加速apt-get
|
|
- ./docker/debian/sources.list:/etc/apt/sources.list:ro
|
|
- ./docker/php/php.ini:/usr/local/etc/php/php.ini:ro
|
|
- ./docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
|
|
- xdebug_logs:/tmp # Xdebug 日志目录
|
|
depends_on:
|
|
- db
|
|
networks:
|
|
- newshop-net
|
|
|
|
nginx:
|
|
build:
|
|
context: ./docker/nginx
|
|
dockerfile: Dockerfile
|
|
container_name: newshop_nginx
|
|
restart: always
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./src:/var/www/html:ro
|
|
# 更新下载源列表以加速apt-get
|
|
- ./docker/debian/sources.list:/etc/apt/sources.list:ro
|
|
# 创建临时目录
|
|
- /var/www/server/nginx/proxy_temp_dir
|
|
- /var/www/server/nginx/proxy_cache_dir
|
|
|
|
|
|
depends_on:
|
|
- php-fpm
|
|
networks:
|
|
- newshop-net
|
|
|
|
db:
|
|
image: mysql:5.7.44
|
|
container_name: newshop_mysql
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: rootpassword
|
|
MYSQL_ROOT_HOST: '%' # 允许root从任何主机连接
|
|
MYSQL_DATABASE: shop_mallnew
|
|
MYSQL_USER: shop_mallnew
|
|
MYSQL_PASSWORD: shop_mallnew
|
|
# env_file:
|
|
# - ./.docker/.env
|
|
volumes:
|
|
- mysql_db_data:/var/lib/mysql
|
|
- ./docker/mysql/init:/docker-entrypoint-initdb.d
|
|
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/custom.cnf
|
|
ports:
|
|
- "3306:3306"
|
|
networks:
|
|
- newshop-net
|
|
restart: unless-stopped
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
- --innodb_buffer_pool_size=256M
|
|
|
|
# Redis 服务(可选)
|
|
redis:
|
|
image: redis:8.2
|
|
container_name: newshop-redis
|
|
environment:
|
|
- REDIS_PASSWORD=luckyshop123!@#
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
- ./docker/redis/redis.conf:/etc/redis/redis.conf
|
|
networks:
|
|
- newshop-net
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
mysql_db_data:
|
|
redis_data:
|
|
xdebug_logs:
|
|
|
|
networks:
|
|
newshop-net:
|
|
driver: bridge |