FROM docker-0.unsee.tech/golang:alpine AS builder WORKDIR /app ENV GOPROXY=https://goproxy.cn \ GO111MODULE=on \ CGO_ENABLED=0 \ GOCACHE=/root/.cache/go-build \ GOMODCACHE=/go/pkg/mod COPY ../common /app/common COPY . /app/storage # 编译 WORKDIR /app/storage RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ mage linux all # 基础运行环境 FROM docker-0.unsee.tech/alpine:latest AS base WORKDIR /app RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk add --no-cache tzdata ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # hub FROM base AS hubimage COPY --from=builder /app/storage/build/hub . RUN chmod +x hub/hub ENTRYPOINT ["./hub/hub"] # coordinator FROM base AS coorimage COPY --from=builder /app/storage/build/coordinator . RUN chmod +x coordinator/coordinator ENTRYPOINT ["./coordinator/coordinator"] # scanner FROM base AS scannerimage COPY --from=builder /app/storage/build/scanner . RUN chmod +x scanner/scanner ENTRYPOINT ["./scanner/scanner"] # client FROM base AS clientimage COPY --from=builder /app/storage/build/client . RUN chmod +x client/client ENTRYPOINT ["./client/client","serve","http"]