49 lines
1.3 KiB
Docker
49 lines
1.3 KiB
Docker
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"]
|