根据these docs,我可以使用env var POSTGRES_DB
指定postgres docker镜像创建的数据库的名称。我已经在我的docker-compose文件中设置了它,但它没有被创建。
以下是撰写文件中的相关部分:
pg:
image: postgres:10
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: user-auth
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
以下是日志:
Attaching to userauth_pg_1
pg_1 | 2018-02-05 18:05:54.803 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
pg_1 | 2018-02-05 18:05:54.803 UTC [1] LOG: listening on IPv6 address "::", port 5432
pg_1 | 2018-02-05 18:05:54.806 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
pg_1 | 2018-02-05 18:05:54.817 UTC [24] LOG: database system was interrupted; last known up at 2018-02-05 18:03:26 UTC
pg_1 | 2018-02-05 18:05:54.942 UTC [24] LOG: database system was not properly shut down; automatic recovery in progress
pg_1 | 2018-02-05 18:05:54.944 UTC [24] LOG: redo starts at 0/1633ED0
pg_1 | 2018-02-05 18:05:54.944 UTC [24] LOG: invalid record length at 0/1633F08: wanted 24, got 0
pg_1 | 2018-02-05 18:05:54.944 UTC [24] LOG: redo done at 0/1633ED0
pg_1 | 2018-02-05 18:05:54.955 UTC [1] LOG: database system is ready to accept connections
pg_1 | 2018-02-05 18:05:59.140 UTC [31] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:06:15.528 UTC [32] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:08:46.120 UTC [33] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:08:46.151 UTC [34] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:02.138 UTC [35] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:02.926 UTC [36] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:04.244 UTC [37] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:04.273 UTC [38] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:04.602 UTC [39] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:04.910 UTC [40] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:05.777 UTC [41] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:05.823 UTC [42] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:05.878 UTC [43] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:06.663 UTC [44] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:14:06.716 UTC [45] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:16:32.713 UTC [46] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:47:04.603 UTC [47] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 18:51:34.413 UTC [1] LOG: received smart shutdown request
pg_1 | 2018-02-05 18:51:34.417 UTC [1] LOG: worker process: logical replication launcher (PID 30) exited with exit code 1
pg_1 | 2018-02-05 18:51:34.419 UTC [25] LOG: shutting down
pg_1 | 2018-02-05 18:51:34.434 UTC [1] LOG: database system is shut down
pg_1 | 2018-02-05 19:08:42.934 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
pg_1 | 2018-02-05 19:08:42.934 UTC [1] LOG: listening on IPv6 address "::", port 5432
pg_1 | 2018-02-05 19:08:42.937 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
pg_1 | 2018-02-05 19:08:42.951 UTC [25] LOG: database system was shut down at 2018-02-05 18:51:34 UTC
pg_1 | 2018-02-05 19:08:42.956 UTC [1] LOG: database system is ready to accept connections
pg_1 | 2018-02-05 19:09:04.316 UTC [32] FATAL: database "user-auth" does not exist
pg_1 | 2018-02-05 19:09:18.081 UTC [33] FATAL: database "user-auth" does not exist
答案 0 :(得分:2)
您很可能在未设置env变量的情况下启动了容器。 然后,在没有用户或数据库信息的情况下初始化数据库。
您需要删除该卷,然后重试。
信用:https://github.com/docker-library/postgres/issues/453#issuecomment-393939412
答案 1 :(得分:0)
我在 Visual Studio Code 中使用 devcontainer(Python 3 和 PostgreSQL),sqltools.connections
中的 devcontainer.json
设置覆盖了 docker-compose.yml
中的配置。
我也在那里更改了设置,它按预期工作!