build: update Dockerfile to use go compilation cache (#104)

This commit is contained in:
Steven
2022-11-18 14:29:40 +08:00
committed by GitHub
parent 399cea02e7
commit 971e935c48
8 changed files with 19 additions and 16 deletions

View File

@@ -25,7 +25,7 @@ clean: ## Empty out the bin folder
@rm -rf build/bin
docker:
docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/bridge.Dockerfile
DOCKER_BUILDKIT=1 docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/bridge.Dockerfile
docker_push:
docker push scrolltech/${IMAGE_NAME}:${IMAGE_VERSION}

View File

@@ -1,6 +1,7 @@
# Download Go dependencies
FROM scrolltech/go-builder:1.18 as base
WORKDIR /src
COPY go.work* ./
COPY ./bridge/go.* ./bridge/
COPY ./common/go.* ./common/
@@ -12,12 +13,13 @@ RUN go mod download -x
# Build bridge
FROM base as builder
COPY ./ /
RUN cd /bridge/cmd && go build -v -p 4 -o bridge
RUN --mount=target=. \
--mount=type=cache,target=/root/.cache/go-build \
cd /src/bridge/cmd && go build -v -p 4 -o /bin/bridge
# Pull bridge into a second stage deploy alpine container
FROM alpine:latest
COPY --from=builder /bridge/cmd/bridge /bin/
COPY --from=builder /bin/bridge /bin/
ENTRYPOINT ["bridge"]

View File

@@ -1,7 +1,5 @@
assets/
coordinator/
docs/
integration-test/
l2geth/
roller/
rpc-gateway/

View File

@@ -1,6 +1,7 @@
# Download Go dependencies
FROM scrolltech/go-builder:1.18 as base
WORKDIR /src
COPY go.work* ./
COPY ./bridge/go.* ./bridge/
COPY ./common/go.* ./common/
@@ -12,12 +13,14 @@ RUN go mod download -x
# Build coordinator
FROM base as builder
COPY ./ /
RUN cd /coordinator/cmd && go build -v -p 4 -o coordinator
RUN --mount=target=. \
--mount=type=cache,target=/root/.cache/go-build \
cd /src/coordinator/cmd && go build -v -p 4 -o /bin/coordinator
# Pull coordinator into a second stage deploy alpine container
FROM alpine:latest
COPY --from=builder /coordinator/cmd/coordinator /bin/
COPY --from=builder /bin/coordinator /bin/
ENTRYPOINT ["coordinator"]

View File

@@ -1,8 +1,6 @@
assets/
bridge/
contracts/
docs/
integration-test/
l2geth/
roller/
rpc-gateway/

View File

@@ -1,6 +1,7 @@
# Download Go dependencies
FROM scrolltech/go-builder:1.18 as base
WORKDIR /src
COPY go.work* ./
COPY ./bridge/go.* ./bridge/
COPY ./common/go.* ./common/
@@ -12,12 +13,13 @@ RUN go mod download -x
# Build db_cli
FROM base as builder
COPY ./ /
RUN cd /database/cmd && go build -v -p 4 -o db_cli
RUN --mount=target=. \
--mount=type=cache,target=/root/.cache/go-build \
cd /src/database/cmd && go build -v -p 4 -o /bin/db_cli
# Pull db_cli into a second stage deploy alpine container
FROM alpine:latest
COPY --from=builder /database/cmd/db_cli /bin/
COPY --from=builder /bin/db_cli /bin/
ENTRYPOINT ["db_cli"]

View File

@@ -17,7 +17,7 @@ clean: ## Empty out the bin folder
@rm -rf build/bin
docker:
docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/coordinator.Dockerfile
DOCKER_BUILDKIT=1 docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/coordinator.Dockerfile
docker_push:
docker push scrolltech/${IMAGE_NAME}:${IMAGE_VERSION}

View File

@@ -14,7 +14,7 @@ lint: ## Lint the files - used for CI
GOBIN=$(PWD)/build/bin go run ../build/lint.go
docker:
docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/${IMAGE_NAME}.Dockerfile
DOCKER_BUILDKIT=1 docker build -t scrolltech/${IMAGE_NAME}:${IMAGE_VERSION} ${REPO_ROOT_DIR}/ -f ${REPO_ROOT_DIR}/build/dockerfiles/${IMAGE_NAME}.Dockerfile
docker_push:
docker push scrolltech/${IMAGE_NAME}:${IMAGE_VERSION}