智慧教务系统
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

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: