Запуск контейнера postgres с ошибкой пароля суперпользователя? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь настроить контейнер postgres для запуска и запуска при инициализации создания таблицы. Мне удалось получить прямое изображение из docker, но теперь, когда я пытаюсь немного расширить изображение, чтобы создавать таблицы, когда оно создается, я не могу его запустить. Исходя из того, что я прочитал здесь Как создать пользователя / базу данных в сценарии для Docker Postgres, это то, что у меня есть:

Dockerfile:

FROM library/postgres
COPY init.sql /docker-entrypoint-initdb.d/

init. sql:

CREATE TABLE incident_disposition (
incident_disposition_code VARCHAR,
incident_disposition_code_description VARCHAR
);

Из того, что я понимаю, ИЗ библиотеки. , , вытягивает postgres образ из docker хаба и COPY толкает мой скрипт init. sql в точку входа, так что нет необходимости в правильном большом файле докера?

Затем я создаю образ без проблем:

Сборка

 docker build -t my_postgres_image .

Но когда я запускаю, я получаю проблемы:

Выполнить

docker run --name testing my_postgres_image --publish 8000:8080 --detach  -e POSTGRES_PASSWORD=postgres -d postgres

Ошибки из журналов

Error: Database is uninitialized and superuser password is not specified.
       You must specify POSTGRES_PASSWORD to a non-empty value for the
       superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

       You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
       connections without a password. This is *not* recommended.

       See PostgreSQL documentation about "trust":
       https://www.postgresql.org/docs/current/auth-trust.html

Попытка комментария:

docker container logs testing
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok


Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/data -l logfile start

initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
waiting for server to start....2020-03-26 14:06:51.064 UTC [46] LOG:  starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2020-03-26 14:06:51.072 UTC [46] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-03-26 14:06:51.108 UTC [47] LOG:  database system was shut down at 2020-03-26 14:06:50 UTC
2020-03-26 14:06:51.119 UTC [46] LOG:  database system is ready to accept connections
 done
server started

/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init.sql
CREATE TABLE


2020-03-26 14:06:51.231 UTC [46] LOG:  received fast shutdown request
waiting for server to shut down....2020-03-26 14:06:51.232 UTC [46] LOG:  aborting any active transactions
2020-03-26 14:06:51.233 UTC [46] LOG:  background worker "logical replication launcher" (PID 53) exited with exit code 1
2020-03-26 14:06:51.234 UTC [48] LOG:  shutting down
2020-03-26 14:06:51.290 UTC [46] LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

2020-03-26 14:06:51.345 UTC [1] LOG:  starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2020-03-26 14:06:51.345 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2020-03-26 14:06:51.345 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2020-03-26 14:06:51.361 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-03-26 14:06:51.387 UTC [64] LOG:  database system was shut down at 2020-03-26 14:06:51 UTC
2020-03-26 14:06:51.398 UTC [1] LOG:  database system is ready to accept connections
2020-03-26 14:07:27.715 UTC [72] ERROR:  relation "incident_disposition" does not exist at character 15
2020-03-26 14:07:27.715 UTC [72] STATEMENT:  select * from incident_disposition;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...