mirror of
https://github.com/prodrigestivill/docker-postgres-backup-local.git
synced 2026-06-01 17:17:57 +00:00
Updated to use postgres image.
This commit is contained in:
+15
-8
@@ -1,8 +1,10 @@
|
||||
FROM alpine:3.4
|
||||
MAINTAINER Pau Rodriguez-Estivill "prodrigestivill@gmail.com"
|
||||
FROM postgres
|
||||
|
||||
ADD install.sh install.sh
|
||||
RUN sh install.sh && rm install.sh
|
||||
RUN set -x \
|
||||
&& apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/* \
|
||||
&& curl -L https://github.com/odise/go-cron/releases/download/v0.0.7/go-cron-linux.gz | zcat > /usr/local/bin/go-cron \
|
||||
&& chmod a+x /usr/local/bin/go-cron \
|
||||
&& apt-get purge -y --auto-remove ca-certificates && apt-get clean
|
||||
|
||||
ENV POSTGRES_DB **None**
|
||||
ENV POSTGRES_HOST **None**
|
||||
@@ -10,13 +12,18 @@ ENV POSTGRES_PORT 5432
|
||||
ENV POSTGRES_USER **None**
|
||||
ENV POSTGRES_PASSWORD **None**
|
||||
ENV POSTGRES_EXTRA_OPTS '-Z9'
|
||||
ENV SCHEDULE **None**
|
||||
ENV SCHEDULE '@daily'
|
||||
ENV BACKUP_DIR '/backups'
|
||||
ENV BACKUP_KEEP_DAYS 7
|
||||
ENV BACKUP_KEEP_WEEKS 4
|
||||
ENV BACKUP_KEEP_MONTHS 6
|
||||
|
||||
ADD run.sh run.sh
|
||||
ADD backup.sh backup.sh
|
||||
COPY backup.sh /backup.sh
|
||||
|
||||
CMD ["sh", "run.sh"]
|
||||
VOLUME /backups
|
||||
|
||||
ENTRYPOINT ["/bin/sh", "-c"]
|
||||
CMD ["exec /usr/local/bin/go-cron -s \"$SCHEDULE\" -p 80 -- /backup.sh"]
|
||||
|
||||
HEALTHCHECK --interval=5m --timeout=3s \
|
||||
CMD curl -f http://localhost/ || exit 1
|
||||
|
||||
@@ -7,34 +7,39 @@ Based on [schickling/postgres-backup-s3](https://hub.docker.com/r/schickling/pos
|
||||
|
||||
Docker:
|
||||
```sh
|
||||
$ docker run -e BACKUP_DIR=/backups -e POSTGRES_DATABASE=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_HOST=localhost schickling/postgres-backup-local
|
||||
$ docker run -e POSTGRES_HOST=postgres -e POSTGRES_DB=dbname -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password prodrigestivill/postgres-backup-local /backup.sh
|
||||
```
|
||||
|
||||
Docker Compose:
|
||||
```yaml
|
||||
postgres:
|
||||
image: postgres
|
||||
environment:
|
||||
POSTGRES_DB: dbname
|
||||
POSTGRES_USER: user
|
||||
POSTGRES_PASSWORD: password
|
||||
|
||||
pgbackups:
|
||||
image: prodrigestivill/postgres-backup-local
|
||||
links:
|
||||
- postgres
|
||||
volumes:
|
||||
- /var/opt/pgbackups:/backups
|
||||
environment:
|
||||
SCHEDULE: '@daily'
|
||||
BACKUP_DIR: /backups
|
||||
BACKUP_KEEP_DAYS: 7
|
||||
BACKUP_KEEP_WEEKS: 4
|
||||
BACKUP_KEEP_MONTHS: 6
|
||||
POSTGRES_DB: dbname
|
||||
POSTGRES_USER: user
|
||||
POSTGRES_PASSWORD: password
|
||||
POSTGRES_EXTRA_OPTS: '-Z9 --schema=public --blobs'
|
||||
version: '2'
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_DB=database
|
||||
- POSTGRES_USER=username
|
||||
- POSTGRES_PASSWORD=password
|
||||
pgbackups:
|
||||
image: prodrigestivill/postgres-backup-local
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/opt/pgbackups:/backups
|
||||
links:
|
||||
- postgres
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
- POSTGRES_HOST=postgres
|
||||
- POSTGRES_DB=database
|
||||
- POSTGRES_USER=username
|
||||
- POSTGRES_PASSWORD=password
|
||||
- POSTGRES_EXTRA_OPTS=-Z9 --schema=public --blobs
|
||||
- SCHEDULE=@daily
|
||||
- BACKUP_KEEP_DAYS=7
|
||||
- BACKUP_KEEP_WEEKS=4
|
||||
- BACKUP_KEEP_MONTHS=6
|
||||
```
|
||||
|
||||
### Automatic Periodic Backups
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
if [ "${POSTGRES_DB}" = "**None**" ]; then
|
||||
echo "You need to set the POSTGRES_DB environment variable."
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
# exit if a command fails
|
||||
set -e
|
||||
|
||||
apk update
|
||||
|
||||
# install pg_dump
|
||||
apk add postgresql
|
||||
|
||||
# install go-cron
|
||||
apk add curl
|
||||
curl -L https://github.com/odise/go-cron/releases/download/v0.0.6/go-cron-linux.gz | zcat > /usr/local/bin/go-cron
|
||||
chmod u+x /usr/local/bin/go-cron
|
||||
apk del curl
|
||||
|
||||
# cleanup
|
||||
rm -rf /var/cache/apk/*
|
||||
Reference in New Issue
Block a user