Files
MaliangAINovalWriter/deploy/open/docker-compose.yml
史悦 bd76264de2 build(deploy): 添加多阶段 Dockerfile 以统一构建前后端
引入一个新的多阶段 `Dockerfile.build`,用于将 Flutter 前端和 Spring Boot 后端的构建过程整合到单个 Docker 镜像中。

- 第一阶段使用 Flutter 镜像构建 Web 静态资源。
- 第二阶段使用 Maven 镜像编译 Java 后端应用。
- 最终阶段将前两阶段的产物(Web 资源和 JAR 包)复制到一个精简的 JRE 基础镜像中,以创建最终的运行时镜像。

此变更简化了部署流程,并显著减小了最终生产镜像的体积。`docker-compose.yml` 已同步更新以使用此新的构建文件。
2025-09-12 13:52:16 +08:00

48 lines
1.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: "3.8"
services:
mongo:
image: mongo:6.0
container_name: ainoval-mongo
restart: unless-stopped
# dev 开发模式:不启用认证(不要设置 MONGO_INITDB_*),首次启动请清空数据卷
volumes:
- mongo-data:/data/db
healthcheck:
test: ["CMD-SHELL", "mongosh --quiet --eval \"db.adminCommand('ping').ok\" || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 5s
ainoval:
image: ainoval/ainoval-server:latest
build:
context: ..
dockerfile: open/Dockerfile.build
container_name: ainoval-server
env_file:
- ./production.env
environment:
- SPRING_PROFILES_ACTIVE=dev
- JVM_XMS=${JVM_XMS:-512m}
- JVM_XMX=${JVM_XMX:-512m}
# 覆盖 dev 配置中的 localhost直接指向 compose 中的 mongo 服务
- SPRING_DATA_MONGODB_URI=${SPRING_DATA_MONGODB_URI:-mongodb://mongo:27017/ainovel}
- STORAGE_PROVIDER=${STORAGE_PROVIDER:-local}
- AINOVEL_STORAGE_TEST_ON_STARTUP=${AINOVEL_STORAGE_TEST_ON_STARTUP:-false}
- PROXY_ENABLED=${PROXY_ENABLED:-false}
ports:
- "18080:18080"
volumes:
- ./logs:/var/log/ainoval
restart: unless-stopped
depends_on:
mongo:
condition: service_healthy
volumes:
mongo-data: