feat(database): 初始化AI项目管理平台数据库设计与环境配置

- 添加PostgreSQL数据库设计,包含部门、用户、角色、权限、项目、任务、工单、
  风险、数据录入及文件附件等核心表结构及索引
- 启用pgvector和uuid-ossp扩展,支持向量存储和UUID生成
- 增加数据库表详细注释,便于后续维护与理解
- 配置Spring Boot项目支持Java 17及相关依赖(Web、PostgreSQL、MyBatis Plus、
  MinIO、AWS SDK S3)
- 新增Dockerfile及构建镜像脚本,支持amd及arm架构容器构建
- 提供完整Docker Compose环境配置,包含MySQL、Redis、Redis Admin、MinIO、
  PhpMyAdmin及应用服务容器
- 新增Nginx反向代理配置文件,支持Admin和Client前端分离部署
- 添加一键启动Shell脚本,简化环境及应用服务启动流程
- 更新Spring Boot配置,设置active profile为dev及服务默认端口8080
- 新增Redis配置文件,开放网络访问端口与绑定所有地址
This commit is contained in:
2026-03-26 14:29:51 +08:00
parent 5819fd5ad4
commit d99509cff5
13 changed files with 1282 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
# docker 代理和使用文档https://bugstack.cn/md/road-map/docker.html
version: '3.9'
services:
mysql:
image: mysql:8.0.32
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
ports:
- "13306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/conf.d/mysql.cnf:ro
- ./mysql/sql:/docker-entrypoint-initdb.d
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
interval: 5s
timeout: 10s
retries: 10
start_period: 15s
networks:
- my-network
# phpmyadmin https://hub.docker.com/_/phpmyadmin
phpmyadmin:
image: phpmyadmin:5.2.1
container_name: phpmyadmin
hostname: phpmyadmin
restart: always
ports:
- 8899:80
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- MYSQL_ROOT_PASSWORD=123456
depends_on:
mysql:
condition: service_healthy
networks:
- my-network
# Redis
redis:
image: redis:6.2
container_name: redis
restart: always
hostname: redis
privileged: true
ports:
- 16379:6379
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
networks:
- my-network
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 10s
timeout: 5s
retries: 3
# RedisAdmin https://github.com/joeferner/redis-commander
# 账密 admin/admin
redis-admin:
image: spryker/redis-commander:0.8.0
container_name: redis-admin
hostname: redis-commander
restart: always
ports:
- 8081:8081
environment:
- REDIS_HOSTS=local:redis:6379
- HTTP_USER=admin
- HTTP_PASSWORD=admin
- LANG=C.UTF-8
- LANGUAGE=C.UTF-8
- LC_ALL=C.UTF-8
networks:
- my-network
depends_on:
redis:
condition: service_healthy
# MinIO https://hub.docker.com/r/minio/minio
# 默认账密minioadmin/minioadmin
minio:
image: minio/minio:latest
container_name: minio
restart: always
hostname: minio
ports:
- "9000:9000" # API端口
- "9001:9001" # Web控制台端口
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
TZ: Asia/Shanghai
volumes:
- ./minio/data:/data
command: server /data --console-address ":9001"
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
interval: 30s
timeout: 20s
retries: 3
networks:
- my-network
networks:
my-network:
driver: bridge