部署: docker-compose 一键启动
- 密钥从仓库根 .env 读取(:? 缺失即报错) - db 绑定挂载当前目录 ./data,按宿主用户运行(OT_UID/OT_GID 可覆盖) - healthcheck 探测 /healthz,restart unless-stopped Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
# openteam 自托管部署
|
||||||
|
#
|
||||||
|
# 启动:docker compose up -d
|
||||||
|
# 首次会本地构建镜像(见 Dockerfile);若已用 build-image.sh 推到仓库,
|
||||||
|
# 把 image 改为仓库地址并删掉 build 段即可拉取多架构镜像。
|
||||||
|
#
|
||||||
|
# 密钥从仓库根 .env 读取(与本地开发共用),缺失时 compose 直接报错。
|
||||||
|
name: openteam
|
||||||
|
|
||||||
|
services:
|
||||||
|
openteam:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: openteam:latest
|
||||||
|
container_name: openteam
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "${HOST_PORT:-8080}:8080"
|
||||||
|
# 以宿主用户运行,保证能写当前目录的 ./data 绑盘(默认 1000:1000,可用 OT_UID/OT_GID 覆盖)
|
||||||
|
user: "${OT_UID:-1000}:${OT_GID:-1000}"
|
||||||
|
environment:
|
||||||
|
OT_ENV: production
|
||||||
|
OT_PORT: 8080
|
||||||
|
# sqlite 落盘到当前目录 ./data(容器 WORKDIR=/app,DSN 用相对路径)
|
||||||
|
OT_DB_DRIVER: sqlite
|
||||||
|
OT_DB_DSN: data/openteam.db
|
||||||
|
# 必填密钥:渠道加密主密钥 / 管理员密码 / JWT 签名
|
||||||
|
OT_MASTER_KEY: ${OT_MASTER_KEY:?请在 .env 中设置 OT_MASTER_KEY}
|
||||||
|
OT_ADMIN_PASSWORD: ${OT_ADMIN_PASSWORD:?请在 .env 中设置 OT_ADMIN_PASSWORD}
|
||||||
|
OT_JWT_SECRET: ${OT_JWT_SECRET:?请在 .env 中设置 OT_JWT_SECRET}
|
||||||
|
volumes:
|
||||||
|
- ./data:/app/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/healthz"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
start_period: 10s
|
||||||
Reference in New Issue
Block a user