Merge pull request #1211 from SuperSandro2000/improve-postgres
Improve postgres Dockerfile
This commit is contained in:
commit
0ad974c57b
|
@ -1,12 +1,16 @@
|
||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
build:
|
image: postgres:10
|
||||||
context: .
|
|
||||||
dockerfile: docker/Dockerfile.postgres
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- postgresdata:/var/lib/postgresql/data
|
- postgresdata:/var/lib/postgresql/data
|
||||||
|
- ./config/sql:/config/sql
|
||||||
|
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: invidious
|
||||||
|
POSTGRES_PASSWORD: kemal
|
||||||
|
POSTGRES_USER: kemal
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "pg_isready", "-U", "postgres"]
|
test: ["CMD", "pg_isready", "-U", "postgres"]
|
||||||
invidious:
|
invidious:
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
FROM postgres:10
|
|
||||||
|
|
||||||
ENV POSTGRES_USER postgres
|
|
||||||
# Do not require a PostgreSQL superuser password.
|
|
||||||
# See https://github.com/docker-library/postgres/issues/681.
|
|
||||||
ENV POSTGRES_HOST_AUTH_METHOD trust
|
|
||||||
|
|
||||||
ADD ./config/sql /config/sql
|
|
||||||
ADD ./docker/entrypoint.postgres.sh /entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
|
||||||
CMD [ "postgres" ]
|
|
|
@ -1,30 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
CMD="$@"
|
|
||||||
if [ ! -f /var/lib/postgresql/data/setupFinished ]; then
|
|
||||||
echo "### first run - setting up invidious database"
|
|
||||||
/usr/local/bin/docker-entrypoint.sh postgres &
|
|
||||||
sleep 10
|
|
||||||
until runuser -l postgres -c 'pg_isready' 2>/dev/null; do
|
|
||||||
>&2 echo "### Postgres is unavailable - waiting"
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
>&2 echo "### importing table schemas"
|
|
||||||
su postgres -c 'createdb invidious'
|
|
||||||
su postgres -c 'psql -c "CREATE USER kemal WITH PASSWORD '"'kemal'"'"'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/channels.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/videos.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/channel_videos.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/users.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/session_ids.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/nonces.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/annotations.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/playlists.sql'
|
|
||||||
su postgres -c 'psql invidious kemal < config/sql/playlist_videos.sql'
|
|
||||||
touch /var/lib/postgresql/data/setupFinished
|
|
||||||
echo "### invidious database setup finished"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "running postgres /usr/local/bin/docker-entrypoint.sh $CMD"
|
|
||||||
exec /usr/local/bin/docker-entrypoint.sh $CMD
|
|
16
docker/init-invidious-db.sh
Executable file
16
docker/init-invidious-db.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
|
CREATE USER postgres;
|
||||||
|
EOSQL
|
||||||
|
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/channels.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/videos.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/channel_videos.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/users.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/session_ids.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/nonces.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/annotations.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/playlists.sql
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < config/sql/playlist_videos.sql
|
Loading…
Reference in a new issue