mirror of
https://github.com/ditkrg/db-backup-s3.git
synced 2026-01-22 22:06:45 +00:00
Use one image for all databases
This commit is contained in:
parent
f2ee85a8ea
commit
a683adc6a5
@ -1,4 +0,0 @@
|
||||
;;; Directory Local Variables
|
||||
;;; For more information see (info "(emacs) Directory Variables")
|
||||
|
||||
((sh-mode . ((sh-basic-offset . 2))))
|
||||
22
.github/workflows/build-and-push-images.yml
vendored
22
.github/workflows/build-and-push-images.yml
vendored
@ -9,19 +9,10 @@ jobs:
|
||||
build-and-push-image:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- { db: mysql, alpine: 3.18 }
|
||||
- { db: postgres, alpine: 3.18 }
|
||||
env:
|
||||
ALPINE_VERSION: 3.18
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
@ -35,12 +26,7 @@ jobs:
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: db-backup-s3/${{ matrix.db }}-backup:alpine-${{ matrix.alpine }}
|
||||
tags: reg.dev.krd/db-backup-s3/db-backup-s3:alpine-${{ env.ALPINE_VERSION }}
|
||||
build-args: |
|
||||
ALPINE_VERSION=${{ matrix.alpine }}
|
||||
DATABASE_SERVER=${{ matrix.db }}
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64
|
||||
ALPINE_VERSION=${{ env.ALPINE_VERSION }}
|
||||
|
||||
16
Dockerfile
16
Dockerfile
@ -4,22 +4,18 @@ ARG ALPINE_VERSION=3.18
|
||||
|
||||
FROM curlimages/curl AS go-cron-downloader
|
||||
ARG GOCRON_VERSION=0.0.5
|
||||
ARG TARGETARCH=amd64
|
||||
|
||||
RUN curl -sL https://github.com/ivoronin/go-cron/releases/download/v${GOCRON_VERSION}/go-cron_${GOCRON_VERSION}_linux_${TARGETARCH}.tar.gz -O
|
||||
RUN tar xvf go-cron_${GOCRON_VERSION}_linux_${TARGETARCH}.tar.gz
|
||||
RUN curl -sL https://github.com/ivoronin/go-cron/releases/download/v${GOCRON_VERSION}/go-cron_${GOCRON_VERSION}_linux_amd64.tar.gz -O
|
||||
RUN tar xvf go-cron_${GOCRON_VERSION}_linux_amd64.tar.gz
|
||||
|
||||
FROM alpine:${ALPINE_VERSION}
|
||||
ARG TARGETARCH=amd64
|
||||
ARG DATABASE_SERVER=postgres
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache \
|
||||
gnupg \
|
||||
aws-cli
|
||||
|
||||
RUN if [[ "${DATABASE_SERVER}" == "mysql" ]]; then apk add --no-cache mysql-client mariadb-connector-c; fi
|
||||
RUN if [[ "${DATABASE_SERVER}" == "postgres" ]]; then apk add --no-cache postgresql-client ; fi
|
||||
aws-cli \
|
||||
postgresql-client \
|
||||
mysql-client mariadb-connector-c
|
||||
|
||||
RUN rm -rf /var/cache/apk/*
|
||||
|
||||
@ -29,6 +25,7 @@ ENV DATABASE_NAME ''
|
||||
ENV DATABASE_HOST ''
|
||||
ENV DATABASE_PORT ''
|
||||
ENV DATABASE_USER ''
|
||||
ENV DATABASE_SERVER ''
|
||||
ENV DATABASE_PASSWORD ''
|
||||
ENV PGDUMP_EXTRA_OPTS ''
|
||||
ENV MYSQLDUMP_EXTRA_OPTS ''
|
||||
@ -42,7 +39,6 @@ ENV S3_S3V4 'no'
|
||||
ENV SCHEDULE ''
|
||||
ENV PASSPHRASE ''
|
||||
ENV BACKUP_KEEP_DAYS ''
|
||||
ENV DATABASE_SERVER=${DATABASE_SERVER}
|
||||
|
||||
ADD src/run.sh run.sh
|
||||
ADD src/env.sh env.sh
|
||||
|
||||
@ -12,7 +12,7 @@ services:
|
||||
DATABASE_PASSWORD: password
|
||||
|
||||
backup:
|
||||
image: reg.dev.krd/db-backup-s3/postgres-backup:alpine-3.18
|
||||
image: reg.dev.krd/db-backup-s3/db-backup-s3:alpine-3.18
|
||||
environment:
|
||||
SCHEDULE: '@weekly' # optional
|
||||
BACKUP_KEEP_DAYS: 7 # optional
|
||||
@ -26,6 +26,7 @@ services:
|
||||
DATABASE_NAME: dbname
|
||||
DATABASE_USER: user
|
||||
DATABASE_PASSWORD: password
|
||||
DATABASE_SERVER: postgres
|
||||
```
|
||||
|
||||
- Images are tagged by the major PostgreSQL version supported: `11`, `12`, `13`, `14`, or `15`.
|
||||
|
||||
@ -31,7 +31,6 @@ services:
|
||||
context: .
|
||||
args:
|
||||
ALPINE_VERSION: '3.18'
|
||||
DATABASE_SERVER: postgres
|
||||
environment:
|
||||
# SCHEDULE: '@weekly' # optional
|
||||
BACKUP_KEEP_DAYS: 7 # optional
|
||||
@ -46,6 +45,7 @@ services:
|
||||
DATABASE_NAME: user
|
||||
DATABASE_USER: user
|
||||
DATABASE_PORT: 5432
|
||||
DATABASE_SERVER: postgres
|
||||
DATABASE_PASSWORD: password
|
||||
|
||||
backup-mysql:
|
||||
@ -53,7 +53,6 @@ services:
|
||||
context: .
|
||||
args:
|
||||
ALPINE_VERSION: '3.18'
|
||||
DATABASE_SERVER: mysql
|
||||
environment:
|
||||
# SCHEDULE: '@weekly' # optional
|
||||
BACKUP_KEEP_DAYS: 7 # optional
|
||||
@ -68,4 +67,5 @@ services:
|
||||
DATABASE_NAME: database
|
||||
DATABASE_USER: root
|
||||
DATABASE_PORT: 3306
|
||||
DATABASE_SERVER: mysql
|
||||
DATABASE_PASSWORD: root_password
|
||||
|
||||
@ -3,6 +3,11 @@ if [ -z "$S3_BUCKET" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$DATABASE_SERVER" ]; then
|
||||
echo "You need to set the DATABASE_SERVER environment variable. (postgres, mysql)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$DATABASE_NAME" ]; then
|
||||
echo "You need to set the DATABASE_NAME environment variable."
|
||||
exit 1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user