本篇文章主要提供给需要在本地开发环境构建镜像的开发者。通过一下几个步骤可轻松实现镜像构建:
# Download dependencies
FROM alpine:3.11 as base_os_context
ARG TARGETARCH
ARG TARGETOS
ARG HELM_VERSION=v3.5.2
ENV OUTDIR=/out
RUN mkdir -p ${OUTDIR}/usr/local/bin/
WORKDIR /tmp
- RUN apk add --no-cache ca-certificates
+ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \
+ && apk add --no-cache ca-certificates
OUTPUT_DIR=bin
BUILDPATH=./${1:?"path to build"}
OUT=${OUTPUT_DIR}/${1:?"output path"}
BUILD_GOOS=${GOOS:-$(go env GOOS)}
BUILD_GOARCH=${GOARCH:-$(go env GOARCH)}
GOBINARY=${GOBINARY:-go}
LDFLAGS=$(kube::version::ldflags)
+ go env -w GOPROXY=https://goproxy.cn,direct
# forgoing -i (incremental build) because it will be deprecated by tool chain.
GOOS=${BUILD_GOOS} CGO_ENABLED=0 GOARCH=${BUILD_GOARCH} ${GOBINARY} build \
-ldflags="${LDFLAGS}" \
-o "${OUT}" \
"${BUILDPATH}"
# 请自定义配置 REPO 和 TAG 环境变量
REPO=johnniang TAG=local_dev_v1 make container