38 lines
760 B
Docker
38 lines
760 B
Docker
# 构建阶段
|
|
FROM docker.m.daocloud.io/golang:1.22-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# 设置 Go 代理(国内加速)
|
|
ENV GOPROXY=https://goproxy.cn,direct
|
|
|
|
# 复制源码
|
|
COPY . .
|
|
|
|
# 下载依赖并编译(静态链接,减小体积)
|
|
RUN go mod tidy && CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o agent .
|
|
|
|
# 运行阶段
|
|
FROM docker.m.daocloud.io/alpine:3.21
|
|
|
|
# 使用阿里云镜像源加速
|
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
|
|
|
# 安装 Docker CLI
|
|
RUN apk add --no-cache docker-cli ca-certificates tzdata
|
|
|
|
WORKDIR /app
|
|
|
|
# 从构建阶段复制二进制
|
|
COPY --from=builder /app/agent .
|
|
|
|
# 设置时区
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
# 版本标识
|
|
ENV AGENT_VERSION=1.0.0
|
|
|
|
EXPOSE 9090
|
|
|
|
CMD ["./agent"]
|