From 3fffa158d67ffd6366e81ba7243eadede1974b1b Mon Sep 17 00:00:00 2001 From: Javier Cortejoso Date: Tue, 8 Aug 2023 20:44:49 +0200 Subject: [PATCH] Dockerfile including whole monorepo (#10472) --- .github/workflows/container-all-monorepo.yml | 40 ++++++++++++++++++++ .github/workflows/container-celotool.yml | 10 ++--- dockerfiles/all-monorepo/Dockerfile | 26 +++++++++++++ dockerfiles/celotool/Dockerfile | 2 + dockerfiles/cli-standalone/Dockerfile | 1 + dockerfiles/cli/Dockerfile | 1 + dockerfiles/phone-number-privacy/Dockerfile | 1 + 7 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/container-all-monorepo.yml create mode 100644 dockerfiles/all-monorepo/Dockerfile diff --git a/.github/workflows/container-all-monorepo.yml b/.github/workflows/container-all-monorepo.yml new file mode 100644 index 00000000000..c418015b981 --- /dev/null +++ b/.github/workflows/container-all-monorepo.yml @@ -0,0 +1,40 @@ +--- +name: Build celo-monorepo container + +on: + push: + paths: + - 'dockerfiles/all-monorepo/**' + branches: + - master + pull_request: + paths: + - 'dockerfiles/all-monorepo/**' + workflow_dispatch: + +jobs: + celomonorepo-build-dev: + uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.8 + name: Build us-west1-docker.pkg.dev/devopsre/dev-images/monorepo:${{ github.sha }} + if: | + github.ref != 'refs/heads/master' + with: + workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo/providers/github-by-repos + service-account: 'celo-monorepo-dev@devopsre.iam.gserviceaccount.com' + artifact-registry: us-west1-docker.pkg.dev/devopsre/dev-images/monorepo + tag: ${{ github.sha }} + context: . + file: dockerfiles/all-monorepo/Dockerfile + + celomonorepo-build: + uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.8 + name: Build us-west1-docker.pkg.dev/devopsre/celo-monorepo/monorepo:${{ github.sha }} + if: | + github.ref == 'refs/heads/master' + with: + workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo-master/providers/github-by-repos + service-account: 'celo-monorepo@devopsre.iam.gserviceaccount.com' + artifact-registry: us-west1-docker.pkg.dev/devopsre/celo-monorepo/monorepo + tag: ${{ github.sha }} + context: . + file: dockerfiles/all-monorepo/Dockerfile diff --git a/.github/workflows/container-celotool.yml b/.github/workflows/container-celotool.yml index 8f57593c570..2b6fce3d7c1 100644 --- a/.github/workflows/container-celotool.yml +++ b/.github/workflows/container-celotool.yml @@ -1,5 +1,5 @@ --- -name: Build celo-monorepo container +name: Build celotool container on: push: @@ -15,26 +15,26 @@ on: jobs: celotool-build-dev: uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.8 - name: Build us-west1-docker.pkg.dev/devopsre/dev-images/celotool:testing + name: Build us-west1-docker.pkg.dev/devopsre/dev-images/celotool:${{ github.sha }} if: | github.ref != 'refs/heads/master' with: workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo/providers/github-by-repos service-account: 'celo-monorepo-dev@devopsre.iam.gserviceaccount.com' artifact-registry: us-west1-docker.pkg.dev/devopsre/dev-images/celotool - tag: testing + tag: ${{ github.sha }} context: . file: dockerfiles/celotool/Dockerfile celotool-build: uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.8 - name: Build us-west1-docker.pkg.dev/devopsre/celo-monorepo/celotool:latest + name: Build us-west1-docker.pkg.dev/devopsre/celo-monorepo/celotool:${{ github.sha }} if: | github.ref == 'refs/heads/master' with: workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo-master/providers/github-by-repos service-account: 'celo-monorepo@devopsre.iam.gserviceaccount.com' artifact-registry: us-west1-docker.pkg.dev/devopsre/celo-monorepo/celotool - tag: latest + tag: ${{ github.sha }} context: . file: dockerfiles/celotool/Dockerfile diff --git a/dockerfiles/all-monorepo/Dockerfile b/dockerfiles/all-monorepo/Dockerfile new file mode 100644 index 00000000000..1b6a53ff1a2 --- /dev/null +++ b/dockerfiles/all-monorepo/Dockerfile @@ -0,0 +1,26 @@ +FROM node:18 +LABEL org.opencontainers.image.authors="devops@clabs.co" + +WORKDIR /celo-monorepo + +# Needed for gsutil +RUN apt-get update && \ + apt-get install -y lsb-release && \ + apt-get install -y curl build-essential git python3 && \ + export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \ + echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \ + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \ + apt-get update -y && \ + apt-get install -y google-cloud-sdk kubectl netcat-openbsd && \ + curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash && \ + rm -rf /var/lib/apt/lists/* + +# ensure yarn.lock is evaluated by kaniko cache diff +COPY . ./ + +RUN yarn install --network-timeout 100000 --frozen-lockfile && yarn cache clean +RUN yarn build + +RUN rm -rf .git +RUN rm -rf .gitmodules + diff --git a/dockerfiles/celotool/Dockerfile b/dockerfiles/celotool/Dockerfile index 1004d1800b2..e9f23bb5525 100644 --- a/dockerfiles/celotool/Dockerfile +++ b/dockerfiles/celotool/Dockerfile @@ -1,4 +1,6 @@ FROM node:18 +LABEL org.opencontainers.image.authors="devops@clabs.co" + WORKDIR /celo-monorepo # Needed for gsutil diff --git a/dockerfiles/cli-standalone/Dockerfile b/dockerfiles/cli-standalone/Dockerfile index bb2390339cb..89a3759f06e 100644 --- a/dockerfiles/cli-standalone/Dockerfile +++ b/dockerfiles/cli-standalone/Dockerfile @@ -4,6 +4,7 @@ # # VERSION=x.y.z; docker build . --build-arg VERSION=$VERSION -t gcr.io/celo-testnet/celocli-standalone:$VERSION FROM node:12-alpine +LABEL org.opencontainers.image.authors="devops@clabs.co" # Install cli install dependencies. RUN apk add --no-cache python3 git make gcc g++ bash libusb-dev linux-headers eudev-dev diff --git a/dockerfiles/cli/Dockerfile b/dockerfiles/cli/Dockerfile index 079e15a4d57..cabd618815b 100644 --- a/dockerfiles/cli/Dockerfile +++ b/dockerfiles/cli/Dockerfile @@ -47,6 +47,7 @@ RUN npm install @celo/celocli # Build the combined image FROM node:12-alpine as final_image +LABEL org.opencontainers.image.authors="devops@clabs.co" ARG network_name="alfajores" ARG network_id="44787" diff --git a/dockerfiles/phone-number-privacy/Dockerfile b/dockerfiles/phone-number-privacy/Dockerfile index d1f23953a0b..65cf6acef16 100644 --- a/dockerfiles/phone-number-privacy/Dockerfile +++ b/dockerfiles/phone-number-privacy/Dockerfile @@ -24,6 +24,7 @@ COPY packages/sdk/wallets/wallet-remote packages/sdk/wallets/wallet-remote ##### Main stage FROM node:18 +LABEL org.opencontainers.image.authors="devops@clabs.co" WORKDIR /celo-phone-number-privacy/