Move compose to the root, update docs and unify control (#93)

This commit is contained in:
Oliver Günther
2024-09-03 11:06:28 +02:00
committed by GitHub
parent 147ba27466
commit abc05eab97
16 changed files with 183 additions and 234 deletions

11
control/Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
FROM debian:10
RUN apt-get update -qq && apt-get install wget gnupg2 -y && rm -rf /var/lib/apt/lists/*
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN echo "deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list
RUN apt-get update -qq && apt-get install postgresql-9.6 postgresql-10 postgresql-13 -y && rm -rf /var/lib/apt/lists/*
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
ADD . /control

13
control/backup/entrypoint.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
set -e
timestamp=$(date +%s)
mkdir -p /backups
cd /backups
filename="${timestamp}-pgdata.tar.gz"
echo "Backing up PostgreSQL data into backups/${filename}..."
tar czf "${filename}" -C "$PGDATA" .
filename="${timestamp}-opdata.tar.gz"
echo "Backing up OpenProject assets into backups/${filename}..."
tar czf "${filename}" -C "$OPDATA" .
echo "DONE"

8
control/upgrade/entrypoint.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
set -e
set -o pipefail
/control/upgrade/scripts/00-db-upgrade.sh
echo "Please restart your installation by issuing the following command:"
echo " docker compose up -d --build --pull always"

View File

@@ -0,0 +1,32 @@
#!/bin/bash
set -e
set -o pipefail
CURRENT_PGVERSION="$(cat $PGDATA/PG_VERSION)"
NEW_PGVERSION="13"
PGWORKDIR=${PGWORKDIR:=/var/lib/postgresql/work}
if [ ! "$CURRENT_PGVERSION" -lt "$NEW_PGVERSION" ]; then
echo "Current PG version is higher or equal to the PG version to be installed ($CURRENT_PGVERSION > $NEW_PGVERSION). Ignoring."
exit 0
fi
export PGBINOLD="/usr/lib/postgresql/$CURRENT_PGVERSION/bin"
export PGBINNEW="/usr/lib/postgresql/$NEW_PGVERSION/bin"
export PGDATAOLD="$PGDATA"
export PGDATANEW="$PGWORKDIR/datanew"
rm -rf "$PGWORKDIR" && mkdir -p "$PGWORKDIR" "$PGDATANEW"
chown -R postgres.postgres "$PGDATA" "$PGWORKDIR"
cd "$PGWORKDIR"
# initialize new db
su -m postgres -c "$PGBINNEW/initdb --pgdata=$PGDATANEW --encoding=unicode --auth=trust"
echo "Performing a dry-run migration to PostgreSQL $NEW_PGVERSION..."
su -m postgres -c "$PGBINNEW/pg_upgrade -c"
echo "Performing the real migration to PostgreSQL $NEW_VERSION..."
su -m postgres -c "$PGBINNEW/pg_upgrade"
su -m postgres -c "rm -rf $PGDATAOLD/* && mv $PGDATANEW/* $PGDATAOLD/"
# as per docker hub documentation
su -m postgres -c "echo \"listen_addresses = '*'\" >> $PGDATAOLD/postgresql.conf"
su -m postgres -c "echo \"host all all all md5\" >> $PGDATAOLD/pg_hba.conf"
echo "DONE"