Files
Edu/infra/deploy.env.example
SpecialX 4a0893ef52 feat(infra): 新增生产 Dockerfile 与部署 compose
- api-gateway/Dockerfile: 多阶段构建,golang:1.22-alpine → alpine:3.20,CGO_ENABLED=0 静态编译,非 root 运行

- teacher-portal/Dockerfile: 多阶段构建,node:20-alpine builder → runner,含 HEALTHCHECK

- docker-compose.prod.yml: 本地生产编排,3 服务,强制 DEV_MODE=false

- docker-compose.deploy.yml: 服务器部署用,镜像来自 Gitea Registry,通过 edu-shared 外部网络连接 MySQL/Redis

- deploy.env.example: 部署环境变量模板
2026-07-08 15:12:34 +08:00

39 lines
1.3 KiB
Plaintext
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.
# 服务器部署环境变量模板
# 使用方式:复制到 /opt/edu/.env 并填入生产值
# cp infra/deploy.env.example /opt/edu/.env
# vim /opt/edu/.env
#
# 安全警告:
# - 此文件含敏感信息,禁止提交到 Git
# - .gitignore 已忽略 .env
# - 仅 SRE AI 或人类决策者可编辑
# ============ 数据库(服务器已有 MySQL============
# DATABASE_URL 中的 host 需用容器名(如 edu-mysql而非 localhost
# 因为应用容器通过 edu-shared 网络访问 MySQL 容器
DATABASE_URL=mysql://edu:changeme@edu-mysql:3306/next_edu_cloud
# ============ Redis服务器已有 Redis============
# 同理用容器名
REDIS_URL=redis://edu-redis:6379
# ============ JWT生产密钥必须修改============
# 生成方式openssl rand -hex 32
JWT_SECRET=CHANGE_ME_TO_STRONG_RANDOM_SECRET
JWT_ISSUER=next-edu-cloud
JWT_AUDIENCE=next-edu-cloud
# ============ 服务端口 ============
API_GATEWAY_PORT=8080
TEACHER_PORTAL_PORT=3000
# ============ KafkaP3 阶段启用P1 留空)============
KAFKA_BROKERS=
# ============ 可观测性P6 阶段启用P1 留空)============
OTEL_EXPORTER_OTLP_ENDPOINT=
LOG_LEVEL=info
# ============ 镜像 tag由 CI 注入,手动部署时可改)============
# IMAGE_TAG=latest ← 默认 latestCI 通过 export IMAGE_TAG 覆盖