merge customTarget into target

This commit is contained in:
wjqserver 2025-05-16 00:24:57 +08:00
parent 052243b095
commit 7d4aae1668
3 changed files with 13 additions and 16 deletions

View file

@ -174,12 +174,10 @@ type OutboundConfig struct {
[docker] [docker]
enabled = false enabled = false
target = "ghcr" # ghcr/dockerhub target = "ghcr" # ghcr/dockerhub
customTarget = "" # 自定义host(不带协议头)
*/ */
type DockerConfig struct { type DockerConfig struct {
Enabled bool `toml:"enabled"` Enabled bool `toml:"enabled"`
Target string `toml:"target"` Target string `toml:"target"`
CustomTarget string `toml:"customTarget"`
} }
// LoadConfig 从 TOML 配置文件加载配置 // LoadConfig 从 TOML 配置文件加载配置

View file

@ -71,4 +71,3 @@ url = "socks5://127.0.0.1:1080" # "http://127.0.0.1:7890"
[docker] [docker]
enabled = false enabled = false
target = "ghcr" # ghcr/dockerhub target = "ghcr" # ghcr/dockerhub
customTarget = "" # 自定义host(不带协议头)

View file

@ -14,18 +14,18 @@ import (
func GhcrRouting(cfg *config.Config) app.HandlerFunc { func GhcrRouting(cfg *config.Config) app.HandlerFunc {
return func(ctx context.Context, c *app.RequestContext) { return func(ctx context.Context, c *app.RequestContext) {
if cfg.Docker.Enabled { if cfg.Docker.Enabled {
if cfg.Docker.CustomTarget == "" {
if cfg.Docker.Target == "ghcr" { if cfg.Docker.Target == "ghcr" {
GhcrRequest(ctx, c, "https://ghcr.io"+string(c.Request.RequestURI()), cfg, "ghcr") GhcrRequest(ctx, c, "https://ghcr.io"+string(c.Request.RequestURI()), cfg, "ghcr")
} else if cfg.Docker.Target == "dockerhub" { } else if cfg.Docker.Target == "dockerhub" {
GhcrRequest(ctx, c, "https://registry-1.docker.io"+string(c.Request.RequestURI()), cfg, "dockerhub") GhcrRequest(ctx, c, "https://registry-1.docker.io"+string(c.Request.RequestURI()), cfg, "dockerhub")
} else if cfg.Docker.Target != "" {
// 自定义taget
GhcrRequest(ctx, c, "https://"+cfg.Docker.Target+string(c.Request.RequestURI()), cfg, "custom")
} else { } else {
ErrorPage(c, NewErrorWithStatusLookup(403, "Docker Target is not Allowed")) // 配置为空
ErrorPage(c, NewErrorWithStatusLookup(403, "Docker Target is not set"))
return return
} }
} else {
GhcrRequest(ctx, c, "https://"+cfg.Docker.CustomTarget+string(c.Request.RequestURI()), cfg, "custom")
}
} else { } else {
ErrorPage(c, NewErrorWithStatusLookup(403, "Docker is not Allowed")) ErrorPage(c, NewErrorWithStatusLookup(403, "Docker is not Allowed"))