Я использую контейнер postgres в своем проекте, и мне кажется, что я не могу изменить его метод аутентификации на что-либо, кроме «доверия», я думаю, потому что база данных уже инициализирована, но я не вижу как это изменить сейчас. Я следил за docs для изображения о том, как его установить, но, похоже, он ничего не делает после того, как у меня уже есть база данных.
docker -compose. yml :
version: '2.2'
services:
db:
image: "postgres:9.5-alpine"
env_file: .env
volumes:
- postgres_data:/var/lib/postgresql/data/
networks:
- backend-network
.env
POSTGRES_DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=badpw
POSTGRES_HOST_AUTH_METHOD=md5
Но когда я запускаю свой контейнер с docker-compose up db
, я все еще могу подключиться к нему без пароль или неправильный пароль.
Проверяя контейнер с помощью docker-compose exec db sh
, я вижу, что он принимает переменные среды, но по-прежнему везде использует метод «доверия»:
/ # echo $POSTGRES_HOST_AUTH_METHOD
md5
/ # cat /var/lib/postgresql/data/pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
#...
# CAUTION: Configuring the system for local "trust" authentication
# allows any local user to connect as any PostgreSQL user, including
# the database superuser. If you do not trust all your local users,
# use another authentication method.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres trust
#host replication postgres 127.0.0.1/32 trust
#host replication postgres ::1/128 trust
# warning trust is enabled for all connections
# see https://www.postgresql.org/docs/12/auth-trust.html
host all all all trust
Не уверен, что эта информация полезна, но вот что я получаю при запуске контейнера:
$ docker-compose up db
Recreating hackerspace_db_1 ... done
Attaching to hackerspace_db_1
db_1 |
db_1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1 |
db_1 | LOG: database system was shut down at 2020-08-03 21:52:08 UTC
db_1 | LOG: MultiXact member wraparound protections are now enabled
db_1 | LOG: database system is ready to accept connections
db_1 | LOG: autovacuum launcher started