#postgresql #powershell #docker-compose #pgadmin-4
#postgresql #powershell #docker-compose #pgadmin-4
Вопрос:
Используя docker-compose, я пытаюсь создать базу данных, я подумал, что, возможно, у меня есть другой суперпользователь для этой ошибки, но при проверке
postgres =# du
List of roles
Role name | Attributes | Member of
----------- ------------------------------------------------------------ -----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
Файл docker-compose.yml
:
version: '3.8'
services:
# Backend API
smart-brain-api:
container_name: backend
build: ./
command: npm start
working_dir: /usr/src/smart-brain-api
# environment:
# POSTGRES_USER: test1
# POSTGRES_PASSWORD: test2
# POSTGRES_DB: smart-brain-docker
# POSTGRES_HOST: postgres
# POSTGRES_HOST_AUTH_METHOD: trust
# links:
# - postgres
ports:
- "3001:3001"
volumes:
- ./:/usr/src/smart-brain-api
# Postgres
postgres:
# environment:
# POSTGRES_USER: test1
# POSTGRES_PASSWORD: test2
# POSTGRES_DB: smart-brain-docker
# POSTGRES_HOST: postgres
# POSTGRES_HOST_AUTH_METHOD: trust
image: postgres
ports:
- "5432:5432"
Закомментированный материал — это то, что я использую дальше в файле, и дополнительно мной: POSTGRES_HOST_AUTH_METHOD: trust
предложенный материал — безуспешно.
Я также попытался изменить POSTGRES_HOST:
postgres1
— на случай, если это помешает моему суперпользователю postgres — безуспешно.
Я даже пытался изменить POSTGRES_USER
и POSTGRES_PASSWORD
на свое фактическое имя пользователя и пароль суперпользователя.
И это мой Dockerfile
FROM node:alpine
WORKDIR /usr/src/smart-brain-api
COPY ./ ./
RUN npm install
CMD ["/bin/bash"]
Ошибка после docker-compose up --build
Successfully tagged smart-brain-api_smart-brain-api:latest
Creating postgres ... done
Creating backend ... done
Attaching to backend, postgres
postgres | Error: Database is uninitialized and superuser password is not specified.
postgres | You must specify POSTGRES_PASSWORD to a non-empty value for the
postgres | superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".
postgres |
postgres | You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
postgres | connections without a password. This is *not* recommended.
postgres |
postgres | See PostgreSQL documentation about "trust":
postgres | https://www.postgresql.org/docs/current/auth-trust.html
postgres exited with code 1
backend |
Я также заметил, когда проигнорировал эту ошибку, и пошел дальше, я бы обошелся CREATE DATABASE
postgres_1
В то время как в процессе он получает:
...
CREATE DATABASE
CREATE ROLE
...
Также я использую -L
for nodemon в package.json
(не уверен, поможет ли это в поиске проблемы, мне пришлось использовать его только потому, что он не прочитал мои новые изменения).
Когда я просто набираю psql
, он пытается разрешить мне войти в систему с именем пользователя моей Windows (которое не задано как пользователь postgres), поэтому я должен использовать psql -U postgres
для входа в систему, этот пользователь «по умолчанию» вызывает некоторые проблемы у суперпользователя?
Я буду продолжать пытаться отличаться и отчитываться.
Комментарии:
1. Никто не знает, пропускаю ли я smtg??
2. Если вы включаете только POSTGRE_USER, POSTGRES_DB и POSTGRES_PASSWORD, это не работает?
3. @Carlos на самом деле это не помогает,
4. Вы получаете ту же ошибку?
5. @Carlos да, я думал об удалении моего мастер-пароля pgAdmin (но это не «инициализация суперпользователя»)? Следующая ошибка, которая пришла ко мне: i.imgur.com/lcV282h.png Который раньше всплывал до того, как я установил
-L
(legacyWatch) вpackage.json
nodemon. Теперь он снова появляется с postgres, можете ли вы помочь мне соединить точки / где еще я могу использовать -L для ‘pg’?