Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
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
openproject/backup:${{ github.sha }}
6 changes: 6 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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 `.github/workflows/docker-image.yml`
builds and pushes `openproject/backup:latest` to Docker Hub.