first add
This commit is contained in:
36
server/Dockerfile.caddy-l4
Normal file
36
server/Dockerfile.caddy-l4
Normal file
@@ -0,0 +1,36 @@
|
||||
# ========= Stage 1: (可选)你的前端静态资源构建 =========
|
||||
FROM node:lts-alpine AS ui-builder
|
||||
WORKDIR /src
|
||||
COPY headscale-ui/package*.json ./
|
||||
RUN npm ci
|
||||
COPY headscale-ui/ .
|
||||
RUN npm run build
|
||||
|
||||
# ========= Stage 2: 用 Go 1.25 (Alpine) 构建 Caddy + 插件 =========
|
||||
FROM golang:1.25.0-alpine3.22 AS caddy-builder
|
||||
|
||||
RUN echo "https://mirrors.aliyun.com/alpine/v3.22/main" > /etc/apk/repositories && \
|
||||
echo "https://mirrors.aliyun.com/alpine/v3.22/community" >> /etc/apk/repositories && \
|
||||
apk update && \
|
||||
apk add --no-cache git build-base ca-certificates
|
||||
|
||||
ENV GOPROXY=https://goproxy.cn,direct
|
||||
ENV GOTOOLCHAIN=local
|
||||
|
||||
RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
|
||||
|
||||
# 用 xcaddy 构建 (保持与用户提供版本一致/可调整)
|
||||
RUN /go/bin/xcaddy build v2.10.1 \
|
||||
--output /usr/local/bin/caddy \
|
||||
--with github.com/caddy-dns/alidns@v1.0.26 \
|
||||
--with github.com/caddy-dns/cloudflare@v0.2.1 \
|
||||
--with github.com/mholt/caddy-l4
|
||||
|
||||
# ========= Stage 3: 运行时镜像(Alpine) =========
|
||||
FROM caddy:2.10.0-alpine
|
||||
COPY --from=caddy-builder /usr/local/bin/caddy /usr/bin/caddy
|
||||
COPY --from=ui-builder /src/build /usr/src/www
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache bind-tools netcat-openbsd jq curl && \
|
||||
mkdir -p /data/log/headscale
|
||||
Reference in New Issue
Block a user