From 001f444cf4ac2e33bd73f7a80f550a8796651456 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Aug 2026 08:57:10 +0000 Subject: [PATCH 1/3] Initial plan From 88f19463c712ace7d92e16ebd7bcde170f77ac91 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Aug 2026 09:03:15 +0000 Subject: [PATCH 2/3] Add backup image Dockerfile and publish workflow Co-authored-by: machisuji <158871+machisuji@users.noreply.github.com> --- .github/workflows/docker-image.yml | 34 ++++++++++++++++++++++++++++++ Dockerfile | 6 ++++++ README.md | 10 ++++++++- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docker-image.yml create mode 100644 Dockerfile diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..ab4fd21 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,34 @@ +name: Build and publish backup image + +on: + push: + branches: + - main + - master + workflow_dispatch: + +jobs: + docker: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + file: ./Dockerfile + push: true + tags: openproject/backup:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1c17476 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM kopia/kopia:latest AS kopia +FROM rclone/rclone:latest AS rclone +FROM postgres:17 + +COPY --from=kopia /usr/bin/kopia /usr/local/bin/kopia +COPY --from=rclone /usr/local/bin/rclone /usr/local/bin/rclone diff --git a/README.md b/README.md index f21cca3..f2c1608 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ # backup -A docker image containing tools for backing up OpenProject (kopia, rclone, pg_dump) +A docker image containing tools for backing up OpenProject (kopia, rclone, pg_dump). + +The `Dockerfile` builds an image with: +- latest `kopia` +- latest `rclone` +- PostgreSQL client tooling from `postgres:17` (`pg_dump` v17) + +A GitHub Actions workflow at `/home/runner/work/backup/backup/.github/workflows/docker-image.yml` +builds and pushes `openproject/backup:latest` to Docker Hub. From 560e6c5a1b7ef43f0d014989980c38c0f5f05997 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Aug 2026 09:04:58 +0000 Subject: [PATCH 3/3] Refine workflow tags and README path Co-authored-by: machisuji <158871+machisuji@users.noreply.github.com> --- .github/workflows/docker-image.yml | 4 +++- README.md | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index ab4fd21..7a2e222 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -31,4 +31,6 @@ jobs: context: . file: ./Dockerfile push: true - tags: openproject/backup:latest + tags: | + openproject/backup:latest + openproject/backup:${{ github.sha }} diff --git a/README.md b/README.md index f2c1608..e09d8b0 100644 --- a/README.md +++ b/README.md @@ -6,5 +6,5 @@ The `Dockerfile` builds an image with: - latest `rclone` - PostgreSQL client tooling from `postgres:17` (`pg_dump` v17) -A GitHub Actions workflow at `/home/runner/work/backup/backup/.github/workflows/docker-image.yml` +A GitHub Actions workflow at `.github/workflows/docker-image.yml` builds and pushes `openproject/backup:latest` to Docker Hub.