cleanup image & bring test to work
This commit is contained in:
parent
2233676fdd
commit
7d759e4d68
9 changed files with 39 additions and 33 deletions
|
@ -1,28 +1,7 @@
|
||||||
FROM ubuntu:focal
|
FROM ubuntu:focal
|
||||||
|
|
||||||
# https://stackoverflow.com/questions/59299133/how-to-silent-install-postgresql-in-ubuntu-via-dockerfile
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# install it
|
||||||
RUN apt-get update > /dev/null; \
|
ADD resources /tmp/
|
||||||
apt-get install restic ca-certificates -y > /dev/null; \
|
RUN /tmp/install.sh
|
||||||
update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
# This will install the latest postgresql version
|
|
||||||
# Taken from https://www.postgresql.org/download/linux/ubuntu/
|
|
||||||
RUN apt-get -y install vim bash-completion wget lsb-release gnupg
|
|
||||||
# Create the file repository configuration:
|
|
||||||
RUN sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
|
||||||
# Import the repository signing key:
|
|
||||||
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
|
||||||
# Update the package lists:
|
|
||||||
RUN apt-get update
|
|
||||||
# Install the latest version of PostgreSQL.
|
|
||||||
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
|
|
||||||
RUN apt-get -y install postgresql-client-13
|
|
||||||
|
|
||||||
|
|
||||||
# Prepare Entrypoint Script
|
|
||||||
ADD resources /usr/local/bin/
|
|
||||||
RUN chmod 700 /usr/local/bin/entrypoint.sh /usr/local/bin/create_pgpass.sh /usr/local/bin/backup.sh /usr/local/bin/restore.sh
|
|
||||||
|
|
4
infrastrucure/docker/image/resources/backup.sh
Normal file → Executable file
4
infrastrucure/docker/image/resources/backup.sh
Normal file → Executable file
|
@ -1,6 +1,10 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
# backup database dump
|
# backup database dump
|
||||||
pg_dump -d $(cat ${POSTGRES_DB_FILE}) -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password --serializable-deferrable --clean --no-privileges | \
|
pg_dump -d $(cat ${POSTGRES_DB_FILE}) -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password --serializable-deferrable --clean --no-privileges | \
|
||||||
restic -r $RESTIC_REPOSITORY --verbose backup --stdin --tag DB_Backup
|
restic -r $RESTIC_REPOSITORY --verbose backup --stdin --tag DB_Backup
|
||||||
|
|
||||||
# backup nextcloud filesystem
|
# backup nextcloud filesystem
|
||||||
restic -r $RESTIC_REPOSITORY backup /var/backups/ --tag Nextcloud_Filesystem
|
restic -r $RESTIC_REPOSITORY backup /var/backups/ --tag Nextcloud_Filesystem
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo "${POSTGRES_HOST}:$(cat ${POSTGRES_DB_FILE}):$(cat ${POSTGRES_USER_FILE}):$(cat ${POSTGRES_PASSWORD_FILE})" > /root/.pgpass
|
|
||||||
echo "${POSTGRES_HOST}:template1:$(cat ${POSTGRES_USER_FILE}):$(cat ${POSTGRES_PASSWORD_FILE})" >> /root/.pgpass
|
|
||||||
chmod 0600 /root/.pgpass
|
|
4
infrastrucure/docker/image/resources/entrypoint.sh
Normal file → Executable file
4
infrastrucure/docker/image/resources/entrypoint.sh
Normal file → Executable file
|
@ -1,6 +1,8 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
/usr/local/bin/create_pgpass.sh
|
echo "${POSTGRES_HOST}:$(cat ${POSTGRES_DB_FILE}):$(cat ${POSTGRES_USER_FILE}):$(cat ${POSTGRES_PASSWORD_FILE})" > /root/.pgpass
|
||||||
|
echo "${POSTGRES_HOST}:template1:$(cat ${POSTGRES_USER_FILE}):$(cat ${POSTGRES_PASSWORD_FILE})" >> /root/.pgpass
|
||||||
|
chmod 0600 /root/.pgpass
|
||||||
|
|
||||||
# Idle process
|
# Idle process
|
||||||
while true; do
|
while true; do
|
||||||
|
|
3
infrastrucure/docker/image/resources/init.sh
Executable file
3
infrastrucure/docker/image/resources/init.sh
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
restic -r $RESTIC_REPOSITORY --verbose init
|
16
infrastrucure/docker/image/resources/install.sh
Executable file
16
infrastrucure/docker/image/resources/install.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
apt-get update > /dev/null;
|
||||||
|
apt-get install -qqy ca-certificates curl wget gnupg > /dev/null
|
||||||
|
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||||
|
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||||
|
|
||||||
|
apt-get update > /dev/null;
|
||||||
|
apt-get -qqy install wget postgresql-client-13 restic > /dev/null;
|
||||||
|
|
||||||
|
update-ca-certificates
|
||||||
|
|
||||||
|
install -m 0700 /tmp/entrypoint.sh /usr/local/bin/
|
||||||
|
install -m 0700 /tmp/init.sh /usr/local/bin/
|
||||||
|
install -m 0700 /tmp/backup.sh /usr/local/bin/
|
||||||
|
install -m 0700 /tmp/restore.sh /usr/local/bin/
|
3
infrastrucure/docker/image/resources/restore.sh
Normal file → Executable file
3
infrastrucure/docker/image/resources/restore.sh
Normal file → Executable file
|
@ -1,4 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
# Restore Nextcloud Filesystem
|
# Restore Nextcloud Filesystem
|
||||||
|
# TODO: describe input params
|
||||||
|
|
||||||
# Reads restore snapshot_ID from first CLI Argument
|
# Reads restore snapshot_ID from first CLI Argument
|
||||||
restic -r $RESTIC_REPOSITORY restore $1 --target /
|
restic -r $RESTIC_REPOSITORY restore $1 --target /
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
FROM meissa-cloud
|
FROM dda-backup
|
||||||
|
|
||||||
RUN apt-get -yqq install curl openjdk-11-jre > /dev/null
|
RUN apt -yqq install openjdk-13-jre-headless > /dev/null
|
||||||
|
|
||||||
RUN curl -L -o /tmp/serverspec.jar https://github.com/DomainDrivenArchitecture/dda-serverspec-crate/releases/download/2.0.0/dda-serverspec-standalone.jar
|
RUN curl -L -o /tmp/serverspec.jar https://github.com/DomainDrivenArchitecture/dda-serverspec-crate/releases/download/2.0.0/dda-serverspec-standalone.jar
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,6 @@
|
||||||
{:package [{:name "restic"}
|
{:package [{:name "restic"}
|
||||||
{:name "postgresql-client-12"}]}
|
{:name "postgresql-client-13"}]
|
||||||
|
:file [{:path "/usr/local/bin/entrypoint.sh" :mod "700"}
|
||||||
|
{:path "/usr/local/bin/init.sh" :mod "700"}
|
||||||
|
{:path "/usr/local/bin/backup.sh" :mod "700"}
|
||||||
|
{:path "/usr/local/bin/restore.sh" :mod "700"}]}
|
||||||
|
|
Loading…
Reference in a new issue