# ---- Builder stage ---- FROM golang:1.26-alpine AS builder WORKDIR /build # 安装构建依赖 RUN apk add --no-cache git make # Go 代理设置(从宿主机传递) ARG GOPROXY=https://proxy.golang.org,direct ARG GOSUMDB=sum.golang.org ENV GOPROXY=${GOPROXY} ENV GOSUMDB=${GOSUMDB} # 依赖缓存层 COPY go.mod go.sum ./ RUN go mod download # 构建参数(版本信息) ARG VERSION=dev ARG GIT_COMMIT=unknown ARG GIT_BRANCH=unknown ARG BUILD_TIME=unknown ARG GO_VERSION=unknown ARG BUILD_PLATFORM=unknown # 构建(参数与 make build 保持一致) COPY . . RUN CGO_ENABLED=0 GOOS=linux go build \ -ldflags="-s -w \ -X 'rua.plus/lolly/internal/version.Version=${VERSION}' \ -X 'rua.plus/lolly/internal/version.GitCommit=${GIT_COMMIT}' \ -X 'rua.plus/lolly/internal/version.GitBranch=${GIT_BRANCH}' \ -X 'rua.plus/lolly/internal/version.BuildTime=${BUILD_TIME}' \ -X 'rua.plus/lolly/internal/version.GoVersion=${GO_VERSION}' \ -X 'rua.plus/lolly/internal/version.BuildPlatform=${BUILD_PLATFORM}'" \ -gcflags="-l=4" \ -asmflags="-l=4" \ -trimpath \ -o /build/lolly \ main.go # 创建运行时目录结构和默认页面 RUN mkdir -p /etc/lolly /var/www/html && \ echo '