44 lines
1010 B
Docker
44 lines
1010 B
Docker
FROM golang:1.23 AS builder
|
|
|
|
WORKDIR /workspace
|
|
|
|
# 创建临时目录结构
|
|
RUN mkdir -p modules/k8s
|
|
|
|
# Copy the Go Modules manifests
|
|
COPY go.mod go.mod
|
|
COPY go.sum go.sum
|
|
|
|
# 禁用所有代理
|
|
ENV HTTP_PROXY=""
|
|
ENV HTTPS_PROXY=""
|
|
ENV http_proxy=""
|
|
ENV https_proxy=""
|
|
ENV GOPROXY=https://goproxy.cn,direct
|
|
|
|
# 下载依赖
|
|
RUN go mod download
|
|
|
|
# Copy the Go source code
|
|
COPY modules/k8s/ modules/k8s/
|
|
|
|
# Build the controller-manager binary
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o controller-manager modules/k8s/cmd/controller-manager/controller-manager.go
|
|
|
|
# Build a small image
|
|
FROM alpine:3.18
|
|
|
|
WORKDIR /
|
|
|
|
# 创建非 root 用户
|
|
RUN addgroup -g 65532 nonroot && \
|
|
adduser -u 65532 -G nonroot -D nonroot
|
|
|
|
COPY --from=builder /workspace/modules/k8s/controller/ modules/k8s/controller/
|
|
COPY --from=builder /workspace/controller-manager .
|
|
|
|
USER 65532:65532
|
|
|
|
ENTRYPOINT ["/controller-manager"]
|
|
|
|
# $ docker build -t devstar-controller-manager:latest -f modules/k8s/Dockerfile.controller-manager . |