Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

도커 타임존 변경 문의드립니다.

3 years, 4 months ago

jinioji jinioji

안녕하세요.


현재 AWS에 서버 구축 후 도커 실행, 도메인 연결까지 완료하였습니다.

한 가지 궁금한 사항이 있습니다.


아래 도커 로그 보시면 db, nginx, web 로그들의 시간이 표시되는데요...

nginx, web의 시간은 docker-compose.yml 파일에 타임존 설정을 해서 서울 시간으로 표시되게 되었습니다.

그런데 db는 같은 방법으로 설정하여도 변경이 되지 않는데 설정이 잘 못 되었는지요?


db 타임존 설정 방법을 알 수 있을까요?


【도커 로그 파일】

[root@Do-It-Django do_it_django_a_to_z]# docker-compose up

Creating network "do_it_django_a_to_z_default" with the default driver

Creating do_it_django_a_to_z_db_1 ... done

Creating do_it_django_a_to_z_web_1 ... done

Creating do_it_django_a_to_z_nginx_1 ... done

Attaching to do_it_django_a_to_z_db_1, do_it_django_a_to_z_web_1, do_it_django_a_to_z_nginx_1

db_1     | 2021-07-02 07:39:39.463 UTC [1] LOG:  starting PostgreSQL 12.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine 8.3.0) 8.3.0, 64-bit

db_1     | 2021-07-02 07:39:39.463 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432

db_1     | 2021-07-02 07:39:39.463 UTC [1] LOG:  listening on IPv6 address "::", port 5432

db_1     | 2021-07-02 07:39:39.466 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"

db_1     | 2021-07-02 07:39:39.487 UTC [19] LOG:  database system was shut down at 2021-07-02 07:39:33 UTC

db_1     | 2021-07-02 07:39:39.491 UTC [1] LOG:  database system is ready to accept connections

nginx_1  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration

nginx_1  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/

nginx_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh

nginx_1  | 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist

nginx_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh

nginx_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh

nginx_1  | /docker-entrypoint.sh: Configuration complete; ready for start up

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: using the "epoll" event method

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: nginx/1.21.0

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: OS: Linux 4.14.232-177.418.amzn2.x86_64

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:4096

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: start worker processes

nginx_1  | 2021/07/02 16:39:41 [notice] 1#1: start worker process 22

web_1    | [2021-07-02 16:39:41 +0900] [1] [INFO] Starting gunicorn 20.1.0

web_1    | [2021-07-02 16:39:41 +0900] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)

web_1    | [2021-07-02 16:39:41 +0900] [1] [INFO] Using worker: sync

web_1    | [2021-07-02 16:39:41 +0900] [7] [INFO] Booting worker with pid: 7



【docker-compose.yml】

version: '3'

services:
nginx:
build: ./nginx
environment:
- TZ=Asia/Seoul
volumes:
- static_volume:/usr/src/app/_static
- media_volume:/usr/src/app/_media
ports:
- 80:80
depends_on:
- web
web:
build: .
environment:
- TZ=Asia/Seoul
command: gunicorn do_it_django_prj.wsgi:application --bind 0.0.0.0:8000
volumes:
- static_volume:/usr/src/app/_static
- media_volume:/usr/src/app/_media
- ./:/usr/src/app/
expose:
- 8000
env_file:
- ./.env.prod
depends_on:
- db
db:
environment:
- TZ=Asia/Seoul
image: postgres:12.0-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
env_file:
- ./.env.prod.db
volumes:
postgres_data:
static_volume:
media_volume:


감사합니다.


taegon
taegon   3 years, 4 months ago

안녕하세요.

찾아보신 방법이 맞는 방법입니다만, 몇가지 부연설명이 필요할 것 같네요.

만약 로그로 찍히는 시간만 바꾸고 싶으시면, 지금처럼 docker-compose.yml를 사용하시면 됩니다.

다만 postgres_data 볼륨에 이전에 설정한 타임존 정보가 남아 있어서, 로그가 지정한 타임존과 다르게 표시가 됩니다.

docker-compose down으로 서비스를 중단한 후, docker volume prune 으로 생성한 볼륨 전부를 지우고 다시 진행하시거나, "docker volume ls"로 postgres_data 볼륨의 이름을 찾은 후, docker volume rm db_postgres_data"와 같은 식으로 볼륨을 지운 후 다시 진행하실 수 있습니다.


이렇게 하시더라도 postgresql 자체 타임존은 바뀌지 않는데, TZ와 마찬가지로, 바로 아래줄에 "PGTZ=Asia/Seoul"를 추가해주시면, 데이터베이스 내부에서 사용하는 타임존도 변경이 됩니다.

도움이 되셨길 바랍니다. 고맙습니다.

Updated: July 3, 2021, 11:49 a.m.

jinioji
jinioji   3 years, 4 months ago

안녕하세요.

덕분에 해결했습니다.

감사합니다.

Updated: July 3, 2021, 9:08 p.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A