You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.0 KiB
119 lines
3.0 KiB
version: '3.8'
|
|
|
|
services:
|
|
# PHP 服务
|
|
php:
|
|
image: php:8.2-fpm
|
|
container_name: niucloud_php
|
|
volumes:
|
|
- ./niucloud:/var/www/html
|
|
- ./docker/php/php.ini:/usr/local/etc/php/php.ini
|
|
- ./docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf
|
|
working_dir: /var/www/html
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
environment:
|
|
- PHP_IDE_CONFIG=serverName=niucloud
|
|
command: >
|
|
bash -c "
|
|
apt-get update &&
|
|
apt-get install -y libzip-dev zip unzip git libpng-dev libjpeg-dev libfreetype6-dev &&
|
|
docker-php-ext-configure gd --with-freetype --with-jpeg &&
|
|
docker-php-ext-install pdo pdo_mysql mysqli zip gd &&
|
|
pecl install redis &&
|
|
docker-php-ext-enable redis &&
|
|
php-fpm
|
|
"
|
|
networks:
|
|
- niucloud_network
|
|
|
|
# Nginx 服务
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: niucloud_nginx
|
|
ports:
|
|
- "20080:80" # 原本是 80 映射到 20080
|
|
- "20081:8080" # 原本是 8080 映射到 20081
|
|
volumes:
|
|
- ./niucloud:/var/www/html
|
|
- ./admin/dist:/var/www/admin
|
|
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
|
|
- ./docker/nginx/conf.d:/etc/nginx/conf.d
|
|
- ./docker/logs/nginx:/var/log/nginx
|
|
depends_on:
|
|
- php
|
|
- node
|
|
networks:
|
|
- niucloud_network
|
|
|
|
# MySQL 数据库
|
|
mysql:
|
|
image: mysql:8.0
|
|
container_name: niucloud_mysql
|
|
ports:
|
|
- "23306:3306" # 原本是 3306 映射到 23306
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: root123456
|
|
MYSQL_DATABASE: niucloud
|
|
MYSQL_USER: niucloud
|
|
MYSQL_PASSWORD: niucloud123
|
|
volumes:
|
|
- ./docker/data/mysql:/var/lib/mysql
|
|
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
|
|
- ./docker/logs/mysql:/var/log/mysql
|
|
command: --default-authentication-plugin=mysql_native_password
|
|
networks:
|
|
- niucloud_network
|
|
|
|
# Redis 缓存
|
|
redis:
|
|
image: redis:alpine
|
|
container_name: niucloud_redis
|
|
ports:
|
|
- "26379:6379" # 原本是 6379 映射到 26379
|
|
volumes:
|
|
- ./docker/data/redis:/data
|
|
- ./docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
|
|
command: redis-server /usr/local/etc/redis/redis.conf
|
|
networks:
|
|
- niucloud_network
|
|
|
|
# Node.js 服务 (用于构建前端)
|
|
node:
|
|
image: node:18-alpine
|
|
container_name: niucloud_node
|
|
working_dir: /app
|
|
volumes:
|
|
- ./admin:/app
|
|
- ./docker/data/node_modules:/app/node_modules
|
|
ports:
|
|
- "23000:3000" # 原本是 3000 映射到 23000
|
|
command: >
|
|
sh -c "
|
|
npm config set registry https://registry.npmmirror.com &&
|
|
npm install &&
|
|
npm run dev
|
|
"
|
|
networks:
|
|
- niucloud_network
|
|
|
|
# Composer 服务 (用于 PHP 依赖管理)
|
|
composer:
|
|
image: composer:latest
|
|
container_name: niucloud_composer
|
|
volumes:
|
|
- ./niucloud:/app
|
|
working_dir: /app
|
|
command: install --ignore-platform-reqs
|
|
networks:
|
|
- niucloud_network
|
|
|
|
networks:
|
|
niucloud_network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
mysql_data:
|
|
redis_data:
|
|
node_modules:
|