From ead017b34c38653362040866f21f879f37014726 Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Mon, 21 Jun 2021 17:42:21 +0100 Subject: [PATCH 01/10] Created a dockerfile to build a distroless docker image --- Dockerfile | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1d2f72a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:14 AS build-env +COPY . /app +WORKDIR /app +RUN npm ci --production + +FROM gcr.io/distroless/nodejs:14 +COPY --from=build-env /app /app +WORKDIR /app +CMD ["cli.js"] \ No newline at end of file From bce53664e995944ae1f472348970bbc3d1f4980c Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Mon, 21 Jun 2021 17:44:09 +0100 Subject: [PATCH 02/10] Create Github action to automatically build and push the container --- .github/workflows/docker-publish.yml | 63 ++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/docker-publish.yml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..8f71b71 --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,63 @@ +name: Docker + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +on: + schedule: + - cron: '45 18 * * *' + push: + branches: [ master ] + # Publish semver tags as releases. + tags: [ 'v*.*.*' ] + pull_request: + branches: [ master ] + +env: + # Use docker.io for Docker Hub if empty + REGISTRY: ghcr.io + # github.repository as / + IMAGE_NAME: ${{ github.repository }} + + +jobs: + build: + + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Login against a Docker registry except on PR + # https://github.com/docker/login-action + - name: Log into registry ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + # Build and push Docker image with Buildx (don't push on PR) + # https://github.com/docker/build-push-action + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 49c6d24df132ce25f78b01b36b736fc9b62b813e Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Mon, 21 Jun 2021 17:53:02 +0100 Subject: [PATCH 03/10] Added docker command to the readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 3b83285..e81e672 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,7 @@ ```bash npx speed-cloudflare-cli ``` +or +```bash +docker run --rm ghcr.io/luc122c/speed-cloudflare-cli:master +``` From 940c47184468acb13a92f9fca7eafc38685317b4 Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Mon, 4 Jul 2022 11:35:06 +0100 Subject: [PATCH 04/10] Remove build step since there are only dev dependencies. Upgrade to Node 18. --- Dockerfile | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1d2f72a..e9ecd21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,4 @@ -FROM node:14 AS build-env +FROM gcr.io/distroless/nodejs:18 COPY . /app WORKDIR /app -RUN npm ci --production - -FROM gcr.io/distroless/nodejs:14 -COPY --from=build-env /app /app -WORKDIR /app CMD ["cli.js"] \ No newline at end of file From a0a02598c2d7e6838f4782deec788273340461c3 Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Fri, 3 Feb 2023 23:34:42 +0000 Subject: [PATCH 05/10] Update weekly --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 8f71b71..5d22425 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -7,7 +7,7 @@ name: Docker on: schedule: - - cron: '45 18 * * *' + - cron: '0 23 * * 0' push: branches: [ master ] # Publish semver tags as releases. From 800529cc778eb52198830b17bd2131922868a310 Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Fri, 3 Feb 2023 23:47:24 +0000 Subject: [PATCH 06/10] Use multi-arch, non-root distroless node image. --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e9ecd21..9e260de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/nodejs:18 +FROM gcr.io/distroless/nodejs18:nonroot COPY . /app WORKDIR /app -CMD ["cli.js"] \ No newline at end of file +CMD ["cli.js"] From 829a6f1c039b68b973a7210e8d32ba3791b4d0cb Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Fri, 3 Feb 2023 23:52:57 +0000 Subject: [PATCH 07/10] Upgrade GitHub Actions --- .github/workflows/docker-publish.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 5d22425..f82166d 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -32,13 +32,13 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Login against a Docker registry except on PR # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} if: github.event_name != 'pull_request' - uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + uses: docker/login-action@v2 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -48,14 +48,14 @@ jobs: # https://github.com/docker/metadata-action - name: Extract Docker metadata id: meta - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + uses: docker/build-push-action@v4 with: context: . push: ${{ github.event_name != 'pull_request' }} From d59303a94070757999ee02020e5b9196371d8b78 Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Mon, 12 Feb 2024 18:00:48 +0000 Subject: [PATCH 08/10] Allow for manually triggering build --- .github/workflows/docker-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index f82166d..1b37a68 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,6 +6,7 @@ name: Docker # documentation. on: + workflow_dispatch: schedule: - cron: '0 23 * * 0' push: From 7a81a63b82d4d944dc4d77c80b15f99e7f3f231b Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Tue, 7 Jan 2025 23:02:05 +0000 Subject: [PATCH 09/10] Use self-hosted runner --- .github/workflows/docker-publish.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 1b37a68..5d2587d 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -25,8 +25,7 @@ env: jobs: build: - - runs-on: ubuntu-latest + runs-on: speed-cloudflare-cli-runner-set permissions: contents: read packages: write From a31358b075131112dfb03f864bf1b9c8579a468f Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Tue, 7 Jan 2025 23:18:13 +0000 Subject: [PATCH 10/10] Revert 7a81a63 --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 5d2587d..25d41cc 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -25,7 +25,7 @@ env: jobs: build: - runs-on: speed-cloudflare-cli-runner-set + runs-on: ubuntu-latest permissions: contents: read packages: write