1
0
mirror of https://github.com/garraflavatra/docker-volume-s3-backup.git synced 2025-05-17 13:14:38 +00:00

use build args instead of templating

This commit is contained in:
Elliott Shugerman 2020-05-28 23:59:14 -06:00
parent 563c0fdbdf
commit 31f3a471bc
9 changed files with 35 additions and 148 deletions

View File

@ -1,6 +1,7 @@
FROM alpine:{alpine_version}
ARG ALPINE_VERSION
FROM alpine:${ALPINE_VERSION}
ADD install.sh install.sh
ADD src/install.sh install.sh
RUN sh install.sh && rm install.sh
ENV POSTGRES_DATABASE ''
@ -19,8 +20,8 @@ ENV S3_S3V4 'no'
ENV SCHEDULE ''
ENV PASSPHRASE ''
ADD run.sh run.sh
ADD backup.sh backup.sh
ADD restore.sh restore.sh
ADD src/run.sh run.sh
ADD src/backup.sh backup.sh
ADD src/restore.sh restore.sh
CMD ["sh", "run.sh"]

17
hooks/build Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
set -eux
declare -A arr
arr[9]=3.6
arr[10]=3.8
arr[11]=3.10
arr[12]=edge
for i in "${!arr[@]}"; do
docker build \
--build-arg "ALPINE_VERSION=${arr[$i]}" \
--tag "postgres-backup-s3:$i" \
.
done

10
hooks/push Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -eux
pg_versions=(9 10 11 12)
for pg_ver in ${pg_versions[@]}; do
docker tag postgres-backup-s3:$pg_ver $DOCKER_REPO:$pg_ver
docker push $DOCKER_REPO:$pg_ver
done

View File

@ -1,25 +0,0 @@
#!/usr/bin/python3
VERSIONS = (
('9', '3.6'),
('10', '3.8'),
('11', '3.10'),
('12', 'edge'),
)
def render(postgres_version, alpine_version):
with open(f'template.Dockerfile') as f:
template = f.read()
rendered = template.format(alpine_version=alpine_version)
with open(f'src/{postgres_version}.Dockerfile', 'w') as f:
f.write('# This file is generated from template.Dockerfile. Do not edit it directly.\n')
f.write('###########################################################################\n\n')
f.write(rendered)
if __name__ == '__main__':
for versions in VERSIONS:
render(*versions)

View File

@ -1,29 +0,0 @@
# This file is generated from template.Dockerfile. Do not edit it directly.
###########################################################################
FROM alpine:3.8
ADD install.sh install.sh
RUN sh install.sh && rm install.sh
ENV POSTGRES_DATABASE ''
ENV POSTGRES_HOST ''
ENV POSTGRES_PORT 5432
ENV POSTGRES_USER ''
ENV POSTGRES_PASSWORD ''
ENV PGDUMP_EXTRA_OPTS ''
ENV S3_ACCESS_KEY_ID ''
ENV S3_SECRET_ACCESS_KEY ''
ENV S3_BUCKET ''
ENV S3_REGION 'us-west-1'
ENV S3_PATH 'backup'
ENV S3_ENDPOINT ''
ENV S3_S3V4 'no'
ENV SCHEDULE ''
ENV PASSPHRASE ''
ADD run.sh run.sh
ADD backup.sh backup.sh
ADD restore.sh restore.sh
CMD ["sh", "run.sh"]

View File

@ -1,29 +0,0 @@
# This file is generated from template.Dockerfile. Do not edit it directly.
###########################################################################
FROM alpine:3.10
ADD install.sh install.sh
RUN sh install.sh && rm install.sh
ENV POSTGRES_DATABASE ''
ENV POSTGRES_HOST ''
ENV POSTGRES_PORT 5432
ENV POSTGRES_USER ''
ENV POSTGRES_PASSWORD ''
ENV PGDUMP_EXTRA_OPTS ''
ENV S3_ACCESS_KEY_ID ''
ENV S3_SECRET_ACCESS_KEY ''
ENV S3_BUCKET ''
ENV S3_REGION 'us-west-1'
ENV S3_PATH 'backup'
ENV S3_ENDPOINT ''
ENV S3_S3V4 'no'
ENV SCHEDULE ''
ENV PASSPHRASE ''
ADD run.sh run.sh
ADD backup.sh backup.sh
ADD restore.sh restore.sh
CMD ["sh", "run.sh"]

View File

@ -1,29 +0,0 @@
# This file is generated from template.Dockerfile. Do not edit it directly.
###########################################################################
FROM alpine:edge
ADD install.sh install.sh
RUN sh install.sh && rm install.sh
ENV POSTGRES_DATABASE ''
ENV POSTGRES_HOST ''
ENV POSTGRES_PORT 5432
ENV POSTGRES_USER ''
ENV POSTGRES_PASSWORD ''
ENV PGDUMP_EXTRA_OPTS ''
ENV S3_ACCESS_KEY_ID ''
ENV S3_SECRET_ACCESS_KEY ''
ENV S3_BUCKET ''
ENV S3_REGION 'us-west-1'
ENV S3_PATH 'backup'
ENV S3_ENDPOINT ''
ENV S3_S3V4 'no'
ENV SCHEDULE ''
ENV PASSPHRASE ''
ADD run.sh run.sh
ADD backup.sh backup.sh
ADD restore.sh restore.sh
CMD ["sh", "run.sh"]

View File

@ -1,29 +0,0 @@
# This file is generated from template.Dockerfile. Do not edit it directly.
###########################################################################
FROM alpine:3.6
ADD install.sh install.sh
RUN sh install.sh && rm install.sh
ENV POSTGRES_DATABASE ''
ENV POSTGRES_HOST ''
ENV POSTGRES_PORT 5432
ENV POSTGRES_USER ''
ENV POSTGRES_PASSWORD ''
ENV PGDUMP_EXTRA_OPTS ''
ENV S3_ACCESS_KEY_ID ''
ENV S3_SECRET_ACCESS_KEY ''
ENV S3_BUCKET ''
ENV S3_REGION 'us-west-1'
ENV S3_PATH 'backup'
ENV S3_ENDPOINT ''
ENV S3_S3V4 'no'
ENV SCHEDULE ''
ENV PASSPHRASE ''
ADD run.sh run.sh
ADD backup.sh backup.sh
ADD restore.sh restore.sh
CMD ["sh", "run.sh"]

View File

@ -1,6 +1,6 @@
#! /bin/sh
set -e
set -eux
set -o pipefail
apk update
@ -11,8 +11,8 @@ apk add postgresql-client
# install gpg
apk add gnupg
# install s3 tools
apk add python3
apk add py3-pip # separate package on edge only
pip3 install awscli
# install go-cron