From 90dc0911d38660fd4a17f3e37a04409b7be8a947 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 9 Aug 2023 17:10:38 +0800 Subject: [PATCH] feat: add prover-stats-api docker file (#758) --- build/dockerfiles/prover-stats-api.Dockerfile | 31 +++++++++++++++++++ prover-stats-api/Makefile | 9 +++++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 build/dockerfiles/prover-stats-api.Dockerfile diff --git a/build/dockerfiles/prover-stats-api.Dockerfile b/build/dockerfiles/prover-stats-api.Dockerfile new file mode 100644 index 000000000..d6a50ead3 --- /dev/null +++ b/build/dockerfiles/prover-stats-api.Dockerfile @@ -0,0 +1,31 @@ +# Download Go dependencies +FROM scrolltech/go-alpine-builder:1.19 as base + +WORKDIR /src +COPY go.work* ./ +COPY ./bridge/go.* ./bridge/ +COPY ./common/go.* ./common/ +COPY ./coordinator/go.* ./coordinator/ +COPY ./database/go.* ./database/ +COPY ./prover-stats-api/go.* ./prover-stats-api/ +COPY ./prover/go.* ./prover/ +COPY ./tests/integration-test/go.* ./tests/integration-test/ +COPY ./bridge-history-api/go.* ./bridge-history-api/ +# Support mainland environment. +#ENV GOPROXY="https://goproxy.cn,direct" +RUN go mod download -x + + +# Build prover-stats-api +FROM base as builder + +RUN --mount=target=. \ + --mount=type=cache,target=/root/.cache/go-build \ + cd /src/prover-stats-api/cmd/ && go build -v -p 4 -o /bin/prover-stats-api + +# Pull prover-stats-api into a second stage deploy alpine container \ +FROM alpine:latest + +COPY --from=builder /bin/prover-stats-api /bin/ + +ENTRYPOINT ["prover-stats-api"] \ No newline at end of file diff --git a/prover-stats-api/Makefile b/prover-stats-api/Makefile index a527dc3c8..9441220c9 100644 --- a/prover-stats-api/Makefile +++ b/prover-stats-api/Makefile @@ -1,4 +1,8 @@ -.PHONY: clean build test +.PHONY: clean build test docker + +IMAGE_NAME=prover-stats-api +IMAGE_VERSION=latest +REPO_ROOT_DIR=./.. build: GOBIN=$(PWD)/build/bin go build -o $(PWD)/build/bin/prover-stats-api ./cmd @@ -14,3 +18,6 @@ test: lint: ## Lint the files - used for CI GOBIN=$(PWD)/build/bin go run ../build/lint.go + +docker: + DOCKER_BUILDKIT=1 docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/prover-stats-api.Dockerfile