해결된 질문
작성
·
61
1
3티어 아키텍처 구성 강의중
docker run -d --name leafy-postgres -v mydata://var/lib/postgresql/data --network leafy-network devwikirepo/leafy-postgres:1.0.0
docker run -d -e DB_URL=leafy-postgres --name leafy --network leafy-network devwikirepo/leafy-backend:1.0.0
docker run -d -p 80:80 --name leafy-front --network leafy-network leafy-front:3.0.0-proxy
를하는 과정에서
leafy-postgres 컨테이너 실행 이후 leafy컨테이너를 실행과동시에 leafy가 exit 되네요
로그가 이런데 어떤문제일까요 ?
2025-03-09 11:24:36.857 GMT [1] LOG: database system is ready to accept connections
2025-03-09 11:26:15.754 GMT [35] FATAL: password authentication failed for user "myuser"
2025-03-09 11:26:15.754 GMT [35] DETAIL: Role "myuser" does not exist.
Connection matched pg_hba.conf line 99: "host all all all md5"
leafy-postgres 로그 찍어보니 권한 문제같은데 myuser가 맞지않나요 ?
docker rm -f leafy leafy-front leafy-postgres 여러번 시도해도 오류가 생깁니다
답변 3
0
ckstj8027님 안녕하세요, 데브위키입니다.
아마 이전 볼륨파트에서 생성했던 볼륨과 충돌이 있었던 것 같습니다!
Postgres 컨테이너는 처음 실행되는 시점에 볼륨에 아이디, 패스워드, 초기 데이터 등을 저장하는데요.
이미 이런 데이터가 만들어져 있는 볼륨이 마운트될 경우에는 정상적으로 실행되지 않을 가능성이 높습니다. 이 때는 볼륨 명을 다르게 지정하거나, 시도해보신 것 처럼 볼륨을 삭제하신 후 다시 생성하시면 됩니다.
강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
0
docker run -d --name leafy-postgres -v mydata://var/lib/postgresql/data --network leafy-network devwikirepo/leafy-postgres:1.0.0
가 아닌
docker run -d --name leafy-postgres --network leafy-network devwikirepo/leafy-postgres:1.0.0
처럼 -v 옵션을 안주는경우에는 백엔드 컨테이너인 leafy 가 exit 되지않고 계속 실행되긴합니다
..........................추가 수정 .................................
docker volume rm mydata
docker volume create mydata
로 볼륨을 삭제했다 만드니 다시 정상 작동하긴하네요 어떤 문제였을까요 ?
이전 강의에서 컨테이너1 만들어서 데이터베이스(mydb) create 하고
컨테이너1 삭제를해도 volume 은 있으니 해당 volume 을 사용하는 새로만든 컨테이너2 에도 데이터베이스(mydb) 가 있다 라는 볼륨 실습을 했었는데
이때만든 mydb 때문에 충돌 문제가 생긴거였을까요 ?
0
안녕하세요, 인프런 AI 인턴입니다.
ckstj8027님, Docker를 이용하여 3티어 아키텍처를 구성하는 과정에서 발생한 문제에 대해 질문해주셨군요. 보내주신 로그 메시지에서 알 수 있듯이, leafy-postgres
컨테이너의 myuser
라는 사용자가 존재하지 않아서 인증에 실패하고 있는 것으로 보입니다. 이 오류를 해결하기 위해 몇 가지 방법을 제안드리겠습니다.
사용자 생성 및 확인:
leafy-postgres
컨테이너 내에서 myuser
라는 사용자가 존재하는지 확인합니다. 만약 존재하지 않는다면, 사용자 생성 과정이 수행되지 않았을 가능성이 있습니다. PostgreSQL 설정 파일의 초기화 스크립트에서 사용자 생성 부분(예: CREATE USER myuser WITH PASSWORD 'yourpassword';
)이 올바르게 작성되어 있는지 확인하세요.환경 변수 설정 확인:
DB_URL
환경 변수가 PostgreSQL 데이터베이스 연결 정보(postgresql://myuser:mypassword@leafy-postgres
)를 올바르게 설정하고 있는지, 해당 정보에 맞춰 사용자가 존재하고 있는지 확인합니다.초기화 SQL 스크립트 적용 확인:
leafy-postgres
컨테이너에 적용되고 있는지 확인합니다. docker-entrypoint-initdb.d
폴더 아래에 제대로 위치하고 있는지 확인하고, 초기화 과정이 수행되었는지 로그를 점검해 주세요.유사한 상황을 겪은 다른 수강생들의 게시글과 답변도 도움이 될 수 있습니다. 아래의 게시물들을 참고해서 문제 해결에 필요한 힌트를 얻으시길 바랍니다:
위의 내용과 추천 링크들이 ckstj8027님의 문제 해결에 도움이 되길 바랍니다. 추가적으로 궁금한 사항이 있으면 해당 내용을 포함하여 다시 질문해 주세요. 그럼 지식공유자께서 최선을 다해 도움을 드릴 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.