Sign inSign up

zfxkj/frps

By zfxkj

•Updated 14 days ago

Image
0

4.7K

zfxkj/frps repository overview

⁠FRP Docker 镜像

这个仓库提供只包含 frps 服务端的 FRP Docker 镜像。镜像仍从 FRP 官方 GitHub Release 下载二进制包,并在构建时校验 SHA-256;本项目代码托管和自动构建使用 Gitea Actions。工作流会定时检查 FRP 最新 release,也可以手动指定版本,然后将多架构镜像推送到 Docker Hub。

⁠本地运行

准备配置文件:

cp examples/frps.toml ./frps.toml
# 编辑 ./frps.toml,至少替换 auth.token
docker run --rm --name frps \
  -p 7000:7000/tcp -p 7000:7000/udp \
  -v "$PWD/frps.toml:/etc/frp/frps.toml:ro" \
  frp:0.70.1

镜像的入口固定为 frps。传入任意参数时,参数会原样传给 frps,例如:docker run --rm frp:0.70.1 -c /etc/frp/frps.toml。

⁠Docker Compose

docker compose up frps 可启动示例服务端。示例配置仅用于演示,使用前请修改 token 和网络地址,不要将示例 token 用于生产环境。

⁠发布配置

请先在 Gitea 中手动创建仓库,再将本地代码推送到该仓库。仓库地址、Gitea 用户名和 Token 不会写入本项目文件。

在 Docker Hub 创建镜像仓库,并在 Gitea 仓库的 Settings -> Actions -> Variables 配置以下变量。示例中的两个用户名分别独立填写:

  • IMAGE_NAME:完整 Docker Hub 镜像名,例如 docker.io/<dockerhub-user>/frp
  • DOCKERHUB_USERNAME:Docker Hub 用户名

在 Settings -> Actions -> Secrets 配置:

  • TOKEN:用于检出私有仓库的 Gitea access token
  • DOCKERHUB_TOKEN:Docker Hub access token(不要使用账户密码)

Gitea Actions 工作流会调用 FRP 官方 GitHub Release API 获取最新版本,但不会把本项目托管在 GitHub。工作流会自动从当前 Gitea 运行上下文生成镜像元数据地址,不需要把 Gitea 地址写入仓库文件。工作流不会假设 Gitea 用户名和 Docker Hub 用户名相同。定时任务构建最新 FRP release;手动运行时可在 frp_version 输入框填写不带 v 的版本号,例如 0.70.1。

工作流先注册 QEMU/binfmt 多架构模拟,然后调用宿主机 Docker daemon 的 docker pull 拉取三个架构的 alpine:3.21,为每个平台保存独立的本地标签,再使用同一个 daemon 的本地镜像缓存逐架构构建(--pull=false),最后合并并推送多平台 manifest。宿主机 Docker daemon 必须按 Docker 官方文档配置 HTTP_PROXY、HTTPS_PROXY,并允许 runner 调用 privileged 容器;runner 容器中的代理变量不能替代 daemon 代理配置。FRP 下载阶段仍使用工作流中的 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY。

⁠构建参数

Dockerfile 顶部的 ARG FRP_VERSION=0.70.1 是默认版本的唯一配置点。需要临时使用其他版本时,再通过构建参数覆盖:

docker build --build-arg FRP_VERSION=0.70.1 -t frp:0.70.1 .

当前发布平台为 linux/amd64、linux/arm64 和 linux/arm/v7。不支持的平台会在构建阶段明确失败。

Tag summary

Content type

Image

Digest

sha256:6b84aa08c…

Size

11.1 MB

Last updated

14 days ago

docker pull zfxkj/frps