ARG BASETAG=alpine FROM postgres:$BASETAG ARG GOCRONVER=v0.0.10 ARG TARGETOS ARG TARGETARCH RUN set -x \ && apk update && apk add ca-certificates curl \ && curl -L https://github.com/prodrigestivill/go-cron/releases/download/$GOCRONVER/go-cron-$TARGETOS-$TARGETARCH-static.gz | zcat > /usr/local/bin/go-cron \ && chmod a+x /usr/local/bin/go-cron ENV POSTGRES_DB="**None**" \ POSTGRES_DB_FILE="**None**" \ POSTGRES_HOST="**None**" \ POSTGRES_PORT=5432 \ POSTGRES_USER="**None**" \ POSTGRES_USER_FILE="**None**" \ POSTGRES_PASSWORD="**None**" \ POSTGRES_PASSWORD_FILE="**None**" \ POSTGRES_PASSFILE_STORE="**None**" \ POSTGRES_EXTRA_OPTS="-Z6" \ POSTGRES_CLUSTER="FALSE" \ BACKUP_SCHEDULE="@daily" \ CLEANUP_SCHEDULE="0 0 1 * * *" \ BACKUP_DIR="/backups" \ BACKUP_SUFFIX=".sql.gz" \ BACKUP_KEEP_DAYS="7" \ BACKUP_DELETE_DAYS=true \ BACKUP_KEEP_WEEKS="4" \ BACKUP_DELETE_WEEKS=true \ BACKUP_KEEP_MONTHS="6" \ BACKUP_DELETE_MONTHS=true \ BACKUP_MONTH_DAY="01" \ BACKUP_WEEK_DAY="Sunday" \ HEALTHCHECK_PORT=8080 COPY backup.sh /backup.sh VOLUME /backups ENTRYPOINT ["/bin/sh", "-c"] CMD ["exec /usr/local/bin/go-cron -s \"$BACKUP_SCHEDULE\" -p \"$HEALTHCHECK_PORT\" -- /backup.sh -b"] CMD ["exec /usr/local/bin/go-cron -s \"$CLEANUP_SCHEDULE\" -p \"$HEALTHCHECK_PORT\" -- /backup.sh -c"] HEALTHCHECK --interval=5m --timeout=3s \ CMD curl -f "http://localhost:$HEALTHCHECK_PORT/" || exit 1