diff --git a/CHANGELOG.md b/CHANGELOG.md index c46a842..aaf276b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,19 @@ # 更新日志 +24w22b +--- +- PRE-RELEASE: 此版本是v1.7.1的预发布版本,请勿在生产环境中使用 +- CHANGE: 更新Go版本至1.23.3 +- CHANGE: 更新相关依赖库 +- ADD: 对`Proxy`模块进行优化,增加使用`HEAD`方式预获取`Content-Length`头 +- CHANGE: 将`release`与`dev`版本的底包切换至`wjqserver/caddy:2.9.0-rc4-alpine`,将`nocache`版本的底包切换至`alpine:latest` +- CHANGE: 对`nocache`版本的`config.toml`与`init.sh`进行适配性修改 + 24w22a --- - PRE-RELEASE: 此版本是v1.7.1的预发布版本,请勿在生产环境中使用 - CHANGE: 更新底包 +- CHANGE: 加入测试性的故障熔断机制(Failure Circuit Breaker) v1.7.0 --- diff --git a/DEV-VERSION b/DEV-VERSION index 90bbb5b..c2b048e 100644 --- a/DEV-VERSION +++ b/DEV-VERSION @@ -1 +1 @@ -24w22a \ No newline at end of file +24w22b \ No newline at end of file diff --git a/docker/compose/docker-compose.yml b/docker/compose/docker-compose.yml index 2c3c2f9..e87395e 100644 --- a/docker/compose/docker-compose.yml +++ b/docker/compose/docker-compose.yml @@ -3,6 +3,12 @@ services: ghproxy: image: 'wjqserver/ghproxy:latest' restart: always + healthcheck: + test: ["CMD", "curl", "-f", "http://127.0.0.1:80/api/healthcheck"] + interval: 60s + timeout: 10s + retries: 3 + start_period: 30s volumes: - './ghproxy/log/run:/data/ghproxy/log' - './ghproxy/log/caddy:/data/caddy/log' diff --git a/docker/dockerfile/dev/Dockerfile b/docker/dockerfile/dev/Dockerfile index 15de071..f7d0ca4 100644 --- a/docker/dockerfile/dev/Dockerfile +++ b/docker/dockerfile/dev/Dockerfile @@ -1,4 +1,4 @@ -FROM wjqserver/caddy:2.9.0-rc2-alpine AS builder +FROM wjqserver/caddy:2.9.0-rc4-alpine AS builder ARG USER=WJQSERVER-STUDIO ARG REPO=ghproxy @@ -36,7 +36,7 @@ RUN wget -O /data/${APPLICATION}/whitelist.json https://raw.githubusercontent.co RUN chmod +x /data/${APPLICATION}/${APPLICATION} RUN chmod +x /usr/local/bin/init.sh -FROM wjqserver/caddy:2.9.0-rc2-alpine +FROM wjqserver/caddy:2.9.0-rc4-alpine RUN apk add --no-cache curl diff --git a/docker/dockerfile/nocache/Dockerfile b/docker/dockerfile/nocache/Dockerfile index 578d5d6..2d7327b 100644 --- a/docker/dockerfile/nocache/Dockerfile +++ b/docker/dockerfile/nocache/Dockerfile @@ -1,4 +1,4 @@ -FROM wjqserver/caddy:2.9.0-rc-alpine AS builder +FROM alpine:latest AS builder ARG USER=WJQSERVER-STUDIO ARG REPO=ghproxy @@ -27,8 +27,8 @@ RUN VERSION=$(curl -s https://raw.githubusercontent.com/${USER}/${REPO}/main/VER RUN wget -O /usr/local/bin/init.sh https://raw.githubusercontent.com/${USER}/${REPO}/main/docker/dockerfile/nocache/init.sh # 拉取配置 -RUN wget -O /data/caddy/Caddyfile https://raw.githubusercontent.com/${USER}/${REPO}/main/caddyfile/nocache/Caddyfile -RUN wget -O /data/${APPLICATION}/config.toml https://raw.githubusercontent.com/${USER}/${REPO}/main/config/config.toml +#RUN wget -O /data/caddy/Caddyfile https://raw.githubusercontent.com/${USER}/${REPO}/main/caddyfile/nocache/Caddyfile +RUN wget -O /data/${APPLICATION}/config.toml https://raw.githubusercontent.com/${USER}/${REPO}/main/docker/dockerfile/nocache/config.toml RUN wget -O /data/${APPLICATION}/blacklist.json https://raw.githubusercontent.com/${USER}/${REPO}/main/config/blacklist.json RUN wget -O /data/${APPLICATION}/whitelist.json https://raw.githubusercontent.com/${USER}/${REPO}/main/config/whitelist.json @@ -36,10 +36,11 @@ RUN wget -O /data/${APPLICATION}/whitelist.json https://raw.githubusercontent.co RUN chmod +x /data/${APPLICATION}/${APPLICATION} RUN chmod +x /usr/local/bin/init.sh -FROM wjqserver/caddy:2.9.0-rc-alpine +FROM alpine:latest + +RUN apk add --no-cache curl COPY --from=builder /data/www /data/www -COPY --from=builder /data/caddy /data/caddy COPY --from=builder /data/${APPLICATION} /data/${APPLICATION} COPY --from=builder /usr/local/bin/init.sh /usr/local/bin/init.sh diff --git a/docker/dockerfile/nocache/config.toml b/docker/dockerfile/nocache/config.toml new file mode 100644 index 0000000..f28b683 --- /dev/null +++ b/docker/dockerfile/nocache/config.toml @@ -0,0 +1,32 @@ +[server] +host = "0.0.0.0" +port = 80 +sizeLimit = 125 # MB + +[pages] +enabled = true +staticDir = "/data/www" + +[log] +logFilePath = "/data/ghproxy/log/ghproxy.log" +maxLogSize = 5 # MB + +[cors] +enabled = true + +[auth] +authToken = "token" +enabled = false + +[blacklist] +blacklistFile = "/data/ghproxy/config/blacklist.json" +enabled = false + +[whitelist] +enabled = false +whitelistFile = "/data/ghproxy/config/whitelist.json" + +[rateLimit] +enabled = false +ratePerMinute = 180 +burst = 5 diff --git a/docker/dockerfile/nocache/init.sh b/docker/dockerfile/nocache/init.sh index 34d3477..7820e43 100644 --- a/docker/dockerfile/nocache/init.sh +++ b/docker/dockerfile/nocache/init.sh @@ -2,10 +2,6 @@ APPLICATION=ghproxy -if [ ! -f /data/caddy/config/Caddyfile ]; then - cp /data/caddy/Caddyfile /data/caddy/config/Caddyfile -fi - if [ ! -f /data/${APPLICATION}/config/blacklist.json ]; then cp /data/${APPLICATION}/blacklist.json /data/${APPLICATION}/config/blacklist.json fi @@ -18,8 +14,6 @@ if [ ! -f /data/${APPLICATION}/config/config.toml ]; then cp /data/${APPLICATION}/config.toml /data/${APPLICATION}/config/config.toml fi -/data/caddy/caddy run --config /data/caddy/config/Caddyfile > /data/${APPLICATION}/log/caddy.log 2>&1 & - /data/${APPLICATION}/${APPLICATION} -cfg /data/${APPLICATION}/config/config.toml > /data/${APPLICATION}/log/run.log 2>&1 & while true; do diff --git a/docker/dockerfile/release/Dockerfile b/docker/dockerfile/release/Dockerfile index e668161..bf168f0 100644 --- a/docker/dockerfile/release/Dockerfile +++ b/docker/dockerfile/release/Dockerfile @@ -1,4 +1,4 @@ -FROM wjqserver/caddy:2.9.0-rc-alpine AS builder +FROM wjqserver/caddy:2.9.0-rc4-alpine AS builder ARG USER=WJQSERVER-STUDIO ARG REPO=ghproxy @@ -36,7 +36,7 @@ RUN wget -O /data/${APPLICATION}/whitelist.json https://raw.githubusercontent.co RUN chmod +x /data/${APPLICATION}/${APPLICATION} RUN chmod +x /usr/local/bin/init.sh -FROM wjqserver/caddy:2.9.0-rc-alpine +FROM wjqserver/caddy:2.9.0-rc4-alpine COPY --from=builder /data/www /data/www COPY --from=builder /data/caddy /data/caddy