docker: do not require password for PostgreSQL superuser, docker,kubernetes: create "privacy" type before using it, travis: do not run "docker-compose up" in detached mode (#1042)

* docker: do not require password for PostgreSQL superuser

A password is now required by the postgres Docker image which makes
initial setup (and our CI build) fail with the following error:

    postgres_1   | Error: Database is uninitialized and superuser password is not specified.
    postgres_1   |        You must specify POSTGRES_PASSWORD for the superuser. Use
    postgres_1   |        "-e POSTGRES_PASSWORD=password" to set it in "docker run".
    postgres_1   |
    postgres_1   |        You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections
    postgres_1   |        without a password. This is *not* recommended. See PostgreSQL
    postgres_1   |        documentation about "trust":
    postgres_1   |        https://www.postgresql.org/docs/current/auth-trust.html

See https://github.com/docker-library/postgres/issues/681.

* docker,kubernetes: create PostgreSQL "privacy" type before using it

Fixes the following error when setting up the database:

    postgres_1   | 2020-02-21 01:01:22.371 UTC [172] ERROR:  type "privacy" does not exist at character 200
    postgres_1   | 2020-02-21 01:01:22.371 UTC [172] STATEMENT:  CREATE TABLE public.playlists
    postgres_1   | 	(
    postgres_1   | 	    title text,
    postgres_1   | 	    id text primary key,
    postgres_1   | 	    author text,
    postgres_1   | 	    description text,
    postgres_1   | 	    video_count integer,
    postgres_1   | 	    created timestamptz,
    postgres_1   | 	    updated timestamptz,
    postgres_1   | 	    privacy privacy,
    postgres_1   | 	    index int8[]
    postgres_1   | 	);
    postgres_1   | ERROR:  type "privacy" does not exist
    postgres_1   | LINE 10:     privacy privacy,

* travis: do not run "docker-compose up" in detached mode

Rather, allow database to finish its setup procedure and grant
Invidious time to launch.
This commit is contained in:
leonklingele 2020-03-01 17:06:45 +01:00 committed by GitHub
parent ef70668a77
commit c80c5631f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 3 deletions

View File

@ -27,7 +27,7 @@ jobs:
install: install:
- docker-compose build - docker-compose build
script: script:
- docker-compose up -d - docker-compose up
- sleep 15 # Wait for cluster to become ready, TODO: do not sleep - sleep 15 # Wait for cluster to become ready, TODO: do not sleep
- HEADERS="$(curl -I -s http://localhost:3000/)" - HEADERS="$(curl -I -s http://localhost:3000/)"
- STATUS="$(echo $HEADERS | head -n1)" - STATUS="$(echo $HEADERS | head -n1)"

View File

@ -1,6 +1,9 @@
FROM postgres:10 FROM postgres:10
ENV POSTGRES_USER postgres 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 ./config/sql /config/sql
ADD ./docker/entrypoint.postgres.sh /entrypoint.sh ADD ./docker/entrypoint.postgres.sh /entrypoint.sh

View File

@ -17,9 +17,9 @@ $ kubectl create configmap invidious-postgresql-init \
--from-file=../config/sql/session_ids.sql \ --from-file=../config/sql/session_ids.sql \
--from-file=../config/sql/nonces.sql \ --from-file=../config/sql/nonces.sql \
--from-file=../config/sql/annotations.sql \ --from-file=../config/sql/annotations.sql \
--from-file=../config/sql/privacy.sql \
--from-file=../config/sql/playlists.sql \ --from-file=../config/sql/playlists.sql \
--from-file=../config/sql/playlist_videos.sql \ --from-file=../config/sql/playlist_videos.sql
--from-file=../config/sql/privacy.sql
# Install Helm app to your Kubernetes cluster # Install Helm app to your Kubernetes cluster
$ helm install invidious ./ $ helm install invidious ./