services: php-fpm: build: context: ./docker/php dockerfile: Dockerfile container_name: newshop_php restart: always environment: - PHP_ENV=development - APP_ENV=development - APP_DEBUG=true ports: - "9000:9000" # PHP-FPM 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 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: networks: newshop-net: driver: bridge