Skip to content

Docker image: multi-arch, --edit as container arg or FOGPING_EDIT env - #5

Merged
githubflyideas merged 1 commit into
mainfrom
docker-image
Oct 2, 2026
Merged

githubflyideas merged 1 commit into
mainfrom
docker-image

Conversation

@githubflyideas

Copy link
Copy Markdown
Owner

参考 json-ping 的 Docker 方案,但 fogping 依赖 go-sqlite3(cgo),不能 CGO_ENABLED=0 交叉编译:

  • Dockerfile:用 tonistiigi/xx 在构建机原生架构跑 clang、链接目标架构 musl,全静态产出(xx-verify --static 校验),不走 QEMU。运行层 busybox:musl,非 root(65532),/data 卷,8518 端口,/api/version 健康检查。
  • --edit 参数:镜像名后面的参数原样传给 fogping:docker run ... githubflyideas/fogping --edit user=admin passwd=xxx。另支持 FOGPING_EDIT=1 / FOGPING_USER / FOGPING_PASSWD / FOGPING_DAYS 环境变量,给 Docker Desktop / NAS / RouterOS 这类只能填环境变量的场景。命令行参数排在后面,冲突时覆盖环境变量。--edit 无登录仍会被程序拒绝启动。
  • workflow:v* tag 推 Docker Hub + GHCR(amd64/arm64/arm/v7, provenance: false);PR 只构建 + amd64 冒烟测试,不推送。
  • README:新增 Docker 一节。

需要仓库 Variables DOCKERHUB_USER、Secrets DOCKERHUB_TOKEN(与 json-ping 相同)。

本地验证:同 tag 的 cgo 静态构建 + go test 通过;entrypoint 的 env/参数组合用真实二进制跑过(无登录 --edit 被拒、401、retention 生效)。镜像本身由本 PR 的 CI 验证。

🤖 Generated with Claude Code

https://claude.ai/code/session_01JBw6qLRx7jJVzXwfmxthbf


Generated by Claude Code

- Dockerfile: cgo cross-compile via tonistiigi/xx, static musl binary on busybox
- docker/entrypoint.sh: FOGPING_EDIT/USER/PASSWD/DAYS env -> flags; args pass through
- .github/workflows/docker.yml: push to Docker Hub + GHCR on v* tags; PRs build + smoke test only
- README: Docker section

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JBw6qLRx7jJVzXwfmxthbf
@githubflyideas
githubflyideas merged commit e70a1f1 into main Oct 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants