Files
-Fonu/docker-compose.hub.yml
T
mrlee a954bf09a2
CI / verify (push) Canceled after 0s
fix(docker): 去掉 # syntax 行(国内加速器 401 Unauthorized)并为 hub 编排加 pull_policy: build(v1.2.18)
- Dockerfile 顶部原来显式写 # syntax=docker/dockerfile:1,会让 BuildKit 额外拉 docker/dockerfile 镜像,在国内加速器(飞牛的 docker.fnnas.com)上被拦成 401,构建直接失败;该行已移除——RUN --mount=type=cache 由内建 BuildKit frontend 已支持,缓存挂载保持不变

- docker-compose.hub.yml 增加 pull_policy: build,跳过日志里那条 fonu Pulling(国内直连 Docker Hub 的超时告警)

- 本轮只改 Dockerfile 与 compose,不涉及 Go 代码:安装包未重出,dist 里 1.2.17 的包仍可用
2026-09-27 15:15:39 +08:00

52 lines
2.5 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.
# 从仓库拉源码构建并启动(适合干净机器:只要这一个文件)
#
# 用法:
# mkdir -p /opt/fonu && cd /opt/fonu
# # 取本文件(按你仓库页面上的「原始文件」链接下载,或 git clone 后复制过来):
# # curl -fsSLo docker-compose.hub.yml <仓库里这个文件的原始地址>
# docker compose up -d --build # 会话密钥由应用首次启动自动生成并持久化在数据卷里
#
# 想自己指定会话密钥(可选项):在 compose 文件同层建 .env 写入
# FONU_SESSION_SECRET=<一串随机字符,openssl rand -hex 32 可生成>
# 注意:它同时是凭据加密密钥,数据卷里已经有数据后不要随意更换,否则已存的凭据无法解密。
#
# 构建上下文用的是 Git 地址:BuildKit 会自己把仓库克隆下来,不需要先 git clone 到本地;
# 仓库匿名可读时无需凭据。需要认证时改用 https://<用户名>:<令牌>@<主机>/<路径>.git,
# 或先 git clone 后用 docker-compose.yml(本地上下文那份)。
#
# 首次构建要拉前端与 Go 依赖,比较慢;之后靠 Dockerfile 里的 cache mount 复用缓存。
# 80/443 已被占用(如飞牛 NAS)请改用 docker-compose.host.yml。
name: fonu
services:
fonu:
build:
context: http://45.207.223.190:10082/mrlee/-Fonu.git#main
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}
image: fonu:${FONU_VERSION:-local}
# 有 build 段时 compose 默认会先尝试拉同名镜像(日志里那条 "fonu Pulling" 就是),
# 国内直连 Docker Hub 会超时报警;强制走构建,跳过这一步。
pull_policy: build
container_name: fonu
restart: unless-stopped
ports:
- "6893:6893"
- "18080:80"
- "9443:443"
volumes:
- fonu-data:/data
environment:
FONU_DATA_DIR: /data
FONU_LISTEN: :6893
# 留空即自动:应用会在数据目录里生成并持久化 <DataDir>/session_secret(0600)
# 想自己指定就在同层 .env 里设这个变量;注意它同时是凭据加密密钥,已有数据后不要更换
FONU_SESSION_SECRET: ${FONU_SESSION_SECRET:-}
# 时区:通知消息时间按此显示(默认东八区)
TZ: ${TZ:-Asia/Shanghai}
volumes:
fonu-data: