build: 优化 Dockerfile 构建缓存并移除 API 解密中间件调试日志
All checks were successful
Build docker and publish / prepare (20.15.1) (push) Successful in 12s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.node image_name:ppanel-node name:node]) (push) Successful in 1m30s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.rpc-core image_name:ppanel-rpc-core name:rpc-core]) (push) Successful in 1m55s
Build docker and publish / notify (push) Successful in 2s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.admin image_name:ppanel-admin name:admin]) (push) Successful in 4m13s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.api image_name:ppanel-api name:api]) (push) Successful in 5m30s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.queue image_name:ppanel-queue name:queue]) (push) Successful in 1m32s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.scheduler image_name:ppanel-scheduler name:scheduler]) (push) Successful in 1m36s
Build docker and publish / deploy (push) Successful in 44s

This commit is contained in:
shanshanzhong 2026-03-01 20:30:28 -08:00
parent b8dab70de5
commit e22a34ef3e
7 changed files with 45 additions and 17 deletions

View File

@ -27,8 +27,6 @@ func NewDecryptMiddleware(c config.Config) *DecryptMiddleware {
func (m *DecryptMiddleware) Handle(next http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
fmt.Printf("[DEBUG] DecryptMiddleware entered, Security.Enable=%v, Login-Type=%q\n",
m.conf.Security.Enable, r.Header.Get("Login-Type"))
if !m.conf.Security.Enable {
next(w, r)
return
@ -89,10 +87,9 @@ func (m *DecryptMiddleware) Handle(next http.HandlerFunc) http.HandlerFunc {
httpx.Error(w, xerr.NewErrCode(xerr.DecryptFailed))
return
}
fmt.Printf("[DEBUG] decrypted body: %s\n", string(plain))
r.Body = io.NopCloser(bytes.NewBuffer(plain))
// 防止 httpx.Parse 内部的 r.ParseForm() 消费已替换的 body
// ParseForm 首行检查 r.PostForm == nil置空后它不会再读 body
// 防止 httpx.Parse 内部 r.ParseForm() 消费已替换的 body。
// Go 标准库 ParseForm 首行检查 r.PostForm==nil 才读 body提前置空即可跳过
r.PostForm = url.Values{}
r.ContentLength = int64(len(plain))
}

View File

@ -1,12 +1,17 @@
# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
go mod download
COPY apps/admin ./apps/admin
COPY pkg ./pkg
RUN CGO_ENABLED=0 go build -trimpath -o /ppanel-admin ./apps/admin/ppaneladmin.go
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
CGO_ENABLED=0 go build -trimpath -o /ppanel-admin ./apps/admin/ppaneladmin.go
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata

View File

@ -1,12 +1,18 @@
# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
go mod download
COPY apps/api ./apps/api
COPY apps/rpc ./apps/rpc
COPY pkg ./pkg
RUN go mod download
RUN CGO_ENABLED=0 go build -trimpath -o /ppanel-api ./apps/api/ppanel.go
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
CGO_ENABLED=0 go build -trimpath -o /ppanel-api ./apps/api/ppanel.go
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata

View File

@ -1,12 +1,17 @@
# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
go mod download
COPY apps/node ./apps/node
COPY pkg ./pkg
RUN CGO_ENABLED=0 go build -trimpath -o /ppanel-node ./apps/node/ppanelnode.go
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
CGO_ENABLED=0 go build -trimpath -o /ppanel-node ./apps/node/ppanelnode.go
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata

View File

@ -1,12 +1,17 @@
# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
go mod download
COPY apps/queue ./apps/queue
COPY pkg ./pkg
RUN CGO_ENABLED=0 go build -trimpath -o /ppanel-queue ./apps/queue/queue.go
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
CGO_ENABLED=0 go build -trimpath -o /ppanel-queue ./apps/queue/queue.go
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata

View File

@ -1,12 +1,17 @@
# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
go mod download
COPY apps/rpc ./apps/rpc
COPY pkg ./pkg
RUN CGO_ENABLED=0 go build -trimpath -o /ppanel-rpc-core ./apps/rpc/core/core.go
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
CGO_ENABLED=0 go build -trimpath -o /ppanel-rpc-core ./apps/rpc/core/core.go
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata

View File

@ -1,12 +1,17 @@
# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
go mod download
COPY apps/scheduler ./apps/scheduler
COPY pkg ./pkg
RUN CGO_ENABLED=0 go build -trimpath -o /ppanel-scheduler ./apps/scheduler/scheduler.go
RUN --mount=type=cache,target=/root/go/pkg/mod,id=gomodcache \
--mount=type=cache,target=/root/.cache/go-build,id=gobuildcache \
CGO_ENABLED=0 go build -trimpath -o /ppanel-scheduler ./apps/scheduler/scheduler.go
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata