JCS-pub/Dockerfile

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