해결된 질문
작성
·
569
1
안녕하세요, 강의 잘 수강하고 있습니다.
강의중 db를 실행시키고 10분이자나도 ready가 안 된다면
어떠한 문제가 있는 건가요?
두세번 반복해서 실행해도 올라오지 않습니다.
답변 3
1
로그가 바로 출력되도록 devwikirepo/leafy-postgres:1.0.0 이미지와 leafy 소스코드의 내용을 수정했습니다!
DB서버의 상태는 정상이기 때문에 그대로 실습을 진행해주셔도 되십니다.
하지만 혹시 기존에 컨테이너를 수정해서 실행해보고 싶으실 경우 아래 방법대로 진행해 주시면 됩니다!
기존에 실행되던 leafy-postgres 컨테이너를 새로운 컨테이너로 대체 하는 방법:
기존 이미지 삭제
$ docker image rm -f devwikirepo/leafy-postgres:1.0.0
leafy-postgres 삭제 및 재실행
$ docker rm -f leafy-postgres
$ docker run -d --name leafy-postgres -p 5432:5432 devwikirepo/leafy-postgres:1.0.0
아래와 같이 로그가 바로 출력되는 것으로 수정했습니다.
1
2024-01-21 13:29:43.037 GMT [1] LOG: redirecting log output to logging collector process
2024-01-21 13:29:43.037 GMT [1] HINT: Future log output will appear in directory "pg_log".
저도 여기서 멈춘줄 알았는데 postgresql 같은 경우 로깅 디렉토리가 설정되어 있어 출력이 되지 않는 것 같습니다?!
> docker exec -it leafy-postgres tail -50f /var/lib/postgresql/data/pg_log/postgresql-Sun.log
2024-01-21 13:29:42.549 GMT [49] LOG: starting PostgreSQL 13.13 (Debian 13.13-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-01-21 13:29:42.552 GMT [49] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-01-21 13:29:42.563 GMT [51] LOG: database system was shut down at 2024-01-21 13:29:42 GMT
2024-01-21 13:29:42.579 GMT [49] LOG: database system is ready to accept connections
2024-01-21 13:29:42.904 GMT [49] LOG: received fast shutdown request
2024-01-21 13:29:42.905 GMT [49] LOG: aborting any active transactions
2024-01-21 13:29:42.911 GMT [49] LOG: background worker "logical replication launcher" (PID 57) exited with exit code 1
2024-01-21 13:29:42.911 GMT [52] LOG: shutting down
2024-01-21 13:29:42.948 GMT [49] LOG: database system is shut down
2024-01-21 13:29:43.037 GMT [1] LOG: starting PostgreSQL 13.13 (Debian 13.13-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-01-21 13:29:43.037 GMT [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-01-21 13:29:43.037 GMT [1] LOG: listening on IPv6 address "::", port 5432
2024-01-21 13:29:43.040 GMT [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-01-21 13:29:43.046 GMT [68] LOG: database system was shut down at 2024-01-21 13:29:42 GMT
2024-01-21 13:29:43.052 GMT [1] LOG: database system is ready to accept connections
2024-01-21 13:54:44.406 GMT [1] LOG: received fast shutdown request
2024-01-21 13:54:44.410 GMT [1] LOG: aborting any active transactions
2024-01-21 13:54:44.416 GMT [1] LOG: background worker "logical replication launcher" (PID 74) exited with exit code 1
2024-01-21 13:54:44.420 GMT [69] LOG: shutting down
2024-01-21 13:54:44.489 GMT [1] LOG: database system is shut down
2024-01-21 13:54:44.990 GMT [1] LOG: starting PostgreSQL 13.13 (Debian 13.13-1.pgdg120+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-01-21 13:54:44.990 GMT [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2024-01-21 13:54:44.990 GMT [1] LOG: listening on IPv6 address "::", port 5432
2024-01-21 13:54:44.992 GMT [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-01-21 13:54:44.995 GMT [28] LOG: database system was shut down at 2024-01-21 13:54:44 GMT
2024-01-21 13:54:45.001 GMT [1] LOG: database system is ready to accept connection
이런 경우 docker logs
에 출력을 위해선 어떤 설정이 추가적으로 필요할까요?
아하 그렇군요, 답변 감사합니다. 일단 DB서버는 정상적으로 실행된 것으로 보입니다.
보통은 아래처럼 init.sql 이 실행되었다는 로그까지 나타나야 하지만 아래 2줄만 보이는 상태인 것 같습니다.
맨 아래줄의 Future logs output will appear in directory "pg_log" 문구는 postgres서버가 정상적으로 실행 되었고, 이후 발생하는 로그를 pg_log 디렉터리에 파일로 저장하겠다는 것을 의미합니다.
정상으로 실행된 상태이지만 컨테이너에서 로그를 파일로 저장하는 것은 좋은 방법이 아닙니다. 컨테이너가 재생성되거나 버전이 바뀌면 컨테이너 레이어가 모두 제거되기 때문입니다.(이 부분은 섹션 7에서 자세하게 말씀 드리겠습니다!)
제가 leafy-postgres 이미지를 빌드할 때 실수가 있었네요. 이 부분은 혼동을 드리지 않도록 docker logs 명령으로 실시간 로그로 출력되는 것으로 수정하겠습니다. 좋은 부분 알려주셔서 감사합니다 ! 👍
오.... 그러네요
다시 해보니깐 실행이 잘 되고 있는 상태네요 ㅋㅋ
감사합니다!