|
- 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"]
|