"데이터베이스가 초기화되지 않았고 수퍼 유저 비밀번호가 지정되지 않았습니다"라는 오류로 PostgreSQL을 사용하는 CI / CD 파이프 라인이 실패했습니다.


18

CI / CD 용 PosgreSQL과 함께 Bitbucket 파이프 라인을 사용하고 있습니다. 이 문서 에 따르면 PostgreSQL 서비스는 다음과 같이 설명되었습니다 bitbucket-pipelines.yml.

definitions:
  services:
    postgres:
      image: postgres:9.6-alpine

지금까지는 잘 작동했습니다. 그러나 모든 최신 파이프 라인은 다음 오류로 실패했습니다.

   Error: Database is uninitialized and superuser password is not specified.
   You must specify POSTGRES_PASSWORD for the superuser. Use
   "-e POSTGRES_PASSWORD=password" to set it in "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

어떻게 고칠 수 있습니까? bitbucket-pipelines.yml이러한 오류의 원인이 될 수있는 파일 변경은 없습니다 .

답변:


17

도커 이미지가 업데이트 된 이유 (github issue )입니다. 최신 버전은 어디에서나 비밀번호없이 DB에 연결할 수 없습니다. 따라서 사용자 이름 / 암호를 지정해야합니다.

definitions:
  services:
    postgres:
      image: postgres:9.6-alpine
      environment:
         POSTGRES_DB: pipelines
         POSTGRES_USER: test_user
         POSTGRES_PASSWORD: test_user_password

또는 여전히 비밀번호를 사용하지 않으려면 POSTGRES_HOST_AUTH_METHOD=trust환경 변수를 설정하면 됩니다.

definitions:
  services:
    postgres:
      image: postgres:9.6-alpine
      environment:
        POSTGRES_HOST_AUTH_METHOD: trust

4

약 일주일 전의 최근 변경 사항입니다. 이를 방지하는 한 가지 방법은 postgres 버전을 최신이 아닌 것으로 하드 코딩하는 것입니다 (예 : postgres:9.5.18또는postgres:9.5.20-alpine

또 다른 방법은 가짜 암호를 전달하는 것입니다.

services:
  db:
    image: postgres
    ports:
      - "8001:5432"
    environment:
      - POSTGRES_PASSWORD=fake_password

https://github.com/docker-library/postgres/issues/681 에서 토론을 참조하십시오.


1

처음 도커를 통해 PostgreSQL을에 장고를 연결에 문제가있는 경우, 다음을 추가 POSTGRES_HOST_AUTH_METHOD: trust하여에 docker-compose.yml파일 :

db: image: postgres:11 environment: POSTGRES_HOST_AUTH_METHOD: trust

이것은 나를 위해 연결 문제를 해결합니다.

" 권장 되지 않습니다."trust "에 대한 PostgreSQL 설명서를 참조하십시오 : https://www.postgresql.org/docs/current/auth-trust.html "


이것이 권장되지 않으면 왜 제안합니까? 권장되지 않음을 알리는 것이 좋지만, 제안하는 이유를 제시하거나 그에 대한 해결 방법을 제공합니다. 확실히 도움이 될 것입니다. 의견.
ErroCode-112 원숭이

이 문제를 해결하려면 수퍼 유저에 POSTGRES_PASSWORD를 지정하십시오. "-e POSTGRES_PASSWORD = password"를 사용하여 "docker run"
ADRIAN R7Z
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.