Files
shop-platform/docker-compose.yml
2025-10-29 15:32:26 +08:00

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