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:
|
build-and-push-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
env:
|
||||||
matrix:
|
ALPINE_VERSION: 3.18
|
||||||
include:
|
|
||||||
- { db: mysql, alpine: 3.18 }
|
|
||||||
- { db: postgres, alpine: 3.18 }
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
@ -35,12 +26,7 @@ jobs:
|
|||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v4
|
||||||
with:
|
with:
|
||||||
context: .
|
|
||||||
push: true
|
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: |
|
build-args: |
|
||||||
ALPINE_VERSION=${{ matrix.alpine }}
|
ALPINE_VERSION=${{ env.ALPINE_VERSION }}
|
||||||
DATABASE_SERVER=${{ matrix.db }}
|
|
||||||
platforms: |
|
|
||||||
linux/amd64
|
|
||||||
linux/arm64
|
|
||||||
|
|||||||
16
Dockerfile
16
Dockerfile
@ -4,22 +4,18 @@ ARG ALPINE_VERSION=3.18
|
|||||||
|
|
||||||
FROM curlimages/curl AS go-cron-downloader
|
FROM curlimages/curl AS go-cron-downloader
|
||||||
ARG GOCRON_VERSION=0.0.5
|
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 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_${TARGETARCH}.tar.gz
|
RUN tar xvf go-cron_${GOCRON_VERSION}_linux_amd64.tar.gz
|
||||||
|
|
||||||
FROM alpine:${ALPINE_VERSION}
|
FROM alpine:${ALPINE_VERSION}
|
||||||
ARG TARGETARCH=amd64
|
|
||||||
ARG DATABASE_SERVER=postgres
|
|
||||||
|
|
||||||
RUN apk update && \
|
RUN apk update && \
|
||||||
apk add --no-cache \
|
apk add --no-cache \
|
||||||
gnupg \
|
gnupg \
|
||||||
aws-cli
|
aws-cli \
|
||||||
|
postgresql-client \
|
||||||
RUN if [[ "${DATABASE_SERVER}" == "mysql" ]]; then apk add --no-cache mysql-client mariadb-connector-c; fi
|
mysql-client mariadb-connector-c
|
||||||
RUN if [[ "${DATABASE_SERVER}" == "postgres" ]]; then apk add --no-cache postgresql-client ; fi
|
|
||||||
|
|
||||||
RUN rm -rf /var/cache/apk/*
|
RUN rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
@ -29,6 +25,7 @@ ENV DATABASE_NAME ''
|
|||||||
ENV DATABASE_HOST ''
|
ENV DATABASE_HOST ''
|
||||||
ENV DATABASE_PORT ''
|
ENV DATABASE_PORT ''
|
||||||
ENV DATABASE_USER ''
|
ENV DATABASE_USER ''
|
||||||
|
ENV DATABASE_SERVER ''
|
||||||
ENV DATABASE_PASSWORD ''
|
ENV DATABASE_PASSWORD ''
|
||||||
ENV PGDUMP_EXTRA_OPTS ''
|
ENV PGDUMP_EXTRA_OPTS ''
|
||||||
ENV MYSQLDUMP_EXTRA_OPTS ''
|
ENV MYSQLDUMP_EXTRA_OPTS ''
|
||||||
@ -42,7 +39,6 @@ ENV S3_S3V4 'no'
|
|||||||
ENV SCHEDULE ''
|
ENV SCHEDULE ''
|
||||||
ENV PASSPHRASE ''
|
ENV PASSPHRASE ''
|
||||||
ENV BACKUP_KEEP_DAYS ''
|
ENV BACKUP_KEEP_DAYS ''
|
||||||
ENV DATABASE_SERVER=${DATABASE_SERVER}
|
|
||||||
|
|
||||||
ADD src/run.sh run.sh
|
ADD src/run.sh run.sh
|
||||||
ADD src/env.sh env.sh
|
ADD src/env.sh env.sh
|
||||||
|
|||||||
@ -12,7 +12,7 @@ services:
|
|||||||
DATABASE_PASSWORD: password
|
DATABASE_PASSWORD: password
|
||||||
|
|
||||||
backup:
|
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:
|
environment:
|
||||||
SCHEDULE: '@weekly' # optional
|
SCHEDULE: '@weekly' # optional
|
||||||
BACKUP_KEEP_DAYS: 7 # optional
|
BACKUP_KEEP_DAYS: 7 # optional
|
||||||
@ -26,6 +26,7 @@ services:
|
|||||||
DATABASE_NAME: dbname
|
DATABASE_NAME: dbname
|
||||||
DATABASE_USER: user
|
DATABASE_USER: user
|
||||||
DATABASE_PASSWORD: password
|
DATABASE_PASSWORD: password
|
||||||
|
DATABASE_SERVER: postgres
|
||||||
```
|
```
|
||||||
|
|
||||||
- Images are tagged by the major PostgreSQL version supported: `11`, `12`, `13`, `14`, or `15`.
|
- Images are tagged by the major PostgreSQL version supported: `11`, `12`, `13`, `14`, or `15`.
|
||||||
|
|||||||
@ -31,7 +31,6 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
args:
|
args:
|
||||||
ALPINE_VERSION: '3.18'
|
ALPINE_VERSION: '3.18'
|
||||||
DATABASE_SERVER: postgres
|
|
||||||
environment:
|
environment:
|
||||||
# SCHEDULE: '@weekly' # optional
|
# SCHEDULE: '@weekly' # optional
|
||||||
BACKUP_KEEP_DAYS: 7 # optional
|
BACKUP_KEEP_DAYS: 7 # optional
|
||||||
@ -46,6 +45,7 @@ services:
|
|||||||
DATABASE_NAME: user
|
DATABASE_NAME: user
|
||||||
DATABASE_USER: user
|
DATABASE_USER: user
|
||||||
DATABASE_PORT: 5432
|
DATABASE_PORT: 5432
|
||||||
|
DATABASE_SERVER: postgres
|
||||||
DATABASE_PASSWORD: password
|
DATABASE_PASSWORD: password
|
||||||
|
|
||||||
backup-mysql:
|
backup-mysql:
|
||||||
@ -53,7 +53,6 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
args:
|
args:
|
||||||
ALPINE_VERSION: '3.18'
|
ALPINE_VERSION: '3.18'
|
||||||
DATABASE_SERVER: mysql
|
|
||||||
environment:
|
environment:
|
||||||
# SCHEDULE: '@weekly' # optional
|
# SCHEDULE: '@weekly' # optional
|
||||||
BACKUP_KEEP_DAYS: 7 # optional
|
BACKUP_KEEP_DAYS: 7 # optional
|
||||||
@ -68,4 +67,5 @@ services:
|
|||||||
DATABASE_NAME: database
|
DATABASE_NAME: database
|
||||||
DATABASE_USER: root
|
DATABASE_USER: root
|
||||||
DATABASE_PORT: 3306
|
DATABASE_PORT: 3306
|
||||||
|
DATABASE_SERVER: mysql
|
||||||
DATABASE_PASSWORD: root_password
|
DATABASE_PASSWORD: root_password
|
||||||
|
|||||||
@ -3,6 +3,11 @@ if [ -z "$S3_BUCKET" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
if [ -z "$DATABASE_NAME" ]; then
|
||||||
echo "You need to set the DATABASE_NAME environment variable."
|
echo "You need to set the DATABASE_NAME environment variable."
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user