From 3a3cd83e85d990300babbdf4f46fead6fee77001 Mon Sep 17 00:00:00 2001 From: "Matthew R. Kasun" Date: Fri, 22 Apr 2022 06:51:09 -0400 Subject: [PATCH] speedup docker builds --- .github/workflows/docker-builder.yml | 28 +++++++++++++++++++++++++++ Dockerfile | 4 +--- docker/Dockerfile-go-builder | 6 ++++++ docker/Dockerfile-netclient-multiarch | 2 +- 4 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/docker-builder.yml create mode 100644 docker/Dockerfile-go-builder diff --git a/.github/workflows/docker-builder.yml b/.github/workflows/docker-builder.yml new file mode 100644 index 00000000..f9980e12 --- /dev/null +++ b/.github/workflows/docker-builder.yml @@ -0,0 +1,28 @@ +name: Build go-builder images + +on: + workflow_dispatch: + schedule: + -cron: '00 21 * * SUN' + +jobs: + go-builder: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: SetUp Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to Dockerhub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + name: Build and push to docker hub + uses: docker/build-push-action@v2 + with: + context: . + load: true + platform: linux/amd64 + file: ./docker/Dockerfile-go-builder + tags: gravitl/go-builder:latest diff --git a/Dockerfile b/Dockerfile index 60bec0d8..35f1f052 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,6 @@ #first stage - builder -FROM golang:1.18.0-alpine3.15 as builder +FROM gravitl/go-builder as builder ARG version -RUN apk add build-base WORKDIR /app COPY . . ENV GO111MODULE=auto @@ -17,5 +16,4 @@ RUN mkdir -p /etc/netclient/config COPY --from=builder /app/netmaker . COPY --from=builder /app/config config EXPOSE 8081 -EXPOSE 50051 ENTRYPOINT ["./netmaker"] diff --git a/docker/Dockerfile-go-builder b/docker/Dockerfile-go-builder new file mode 100644 index 00000000..f98268e1 --- /dev/null +++ b/docker/Dockerfile-go-builder @@ -0,0 +1,6 @@ +FROM golang:1.18.0-alpine3.15 +ARG version +RUN apk add build-base +WORKDIR /app +COPY go.* ./ +RUN go mod download diff --git a/docker/Dockerfile-netclient-multiarch b/docker/Dockerfile-netclient-multiarch index 7827ed2a..72a1478b 100644 --- a/docker/Dockerfile-netclient-multiarch +++ b/docker/Dockerfile-netclient-multiarch @@ -1,4 +1,4 @@ -FROM golang:latest as builder +FROM gravitl/go-builder as builder # add glib support daemon manager WORKDIR /app ARG version