2026-09-27 14:38:27 +08:00
|
|
|
|
# 固定项目名:不改的话,改了目录名/项目名后 compose 会把它当成新项目,
|
|
|
|
|
|
# fonu-data 会变成新空卷(看起来像「数据丢了」)。
|
|
|
|
|
|
name: fonu
|
|
|
|
|
|
|
|
|
|
|
|
# 本地项目:用源码构建镜像(镜像名随 VERSION 变,便于回滚;也便于导出 / 备份)
|
|
|
|
|
|
# 升级:docker compose up -d --build(或在部署机跑 scripts/upgrade.sh)
|
|
|
|
|
|
# 回滚:FONU_VERSION=上一个版本号 docker compose up -d(镜像 tag 还在本地)
|
2026-09-23 09:40:59 +08:00
|
|
|
|
services:
|
|
|
|
|
|
fonu:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: .
|
|
|
|
|
|
args:
|
|
|
|
|
|
NODE_IMAGE: ${NODE_IMAGE:-docker.m.daocloud.io/library/node:22-alpine}
|
|
|
|
|
|
GO_IMAGE: ${GO_IMAGE:-docker.m.daocloud.io/library/golang:1.23-bookworm}
|
|
|
|
|
|
RUNTIME_IMAGE: ${RUNTIME_IMAGE:-docker.m.daocloud.io/library/debian:bookworm-slim}
|
|
|
|
|
|
GOPROXY: ${GOPROXY:-https://goproxy.cn,direct}
|
2026-09-27 14:38:27 +08:00
|
|
|
|
image: fonu:${FONU_VERSION:-local}
|
2026-09-23 09:40:59 +08:00
|
|
|
|
container_name: fonu
|
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "6893:6893"
|
|
|
|
|
|
- "18080:80"
|
|
|
|
|
|
- "9443:443"
|
|
|
|
|
|
volumes:
|
2026-09-27 15:31:26 +08:00
|
|
|
|
# 数据目录:默认用命名卷 fonu-data(由 Docker 管理,位置随 Docker 数据根)。
|
|
|
|
|
|
# 想落到指定目录就在同层 .env 里设 FONU_DATA_PATH=/vol1/docker/fonu-data ——
|
|
|
|
|
|
# 以 / 或 . 开头的写法会被 compose 当成 bind mount,其余字符串仍是命名卷。
|
|
|
|
|
|
- ${FONU_DATA_PATH:-fonu-data}:/data
|
2026-09-23 09:40:59 +08:00
|
|
|
|
environment:
|
|
|
|
|
|
FONU_DATA_DIR: /data
|
|
|
|
|
|
FONU_LISTEN: :6893
|
2026-09-27 15:08:28 +08:00
|
|
|
|
# 留空即自动:应用会在数据目录里生成并持久化 <DataDir>/session_secret(0600)
|
|
|
|
|
|
# 想自己指定就设这个变量;注意它同时是凭据加密密钥,已有数据后不要随意更换
|
|
|
|
|
|
FONU_SESSION_SECRET: ${FONU_SESSION_SECRET:-}
|
2026-09-23 17:46:21 +08:00
|
|
|
|
# 时区:通知消息时间按此显示(默认东八区)
|
|
|
|
|
|
TZ: ${TZ:-Asia/Shanghai}
|
2026-09-23 09:40:59 +08:00
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
fonu-data:
|