반응형
문제 상황
Docker를 이용해서 SpringBoot와 Oracle 11g 버전을 올리려 했는데 Oracle DB가 정상적으로 동작하는데 SpringBoot가 Oracle DB와 제대로 연결이 안되는걸 확인 오류 코드는
springboot-app_1 | java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
springboot-app_1 | ORA-01882: timezone region not found
문제 이유
Docker 내부에 타임존이 설정되어 있지 않거나, DB와 SpringBoot 간의 타임존이 달라서 JDBC에서 오류를 내고 있는 것
해결법
저는 SpringBoot Dockerfile과 docker-compose.yml 내부에 각 컨테이너의 TimeZone을 설정해주었습니다.
Spring boot - Dockerfile
ENV TZ=Asiz/Seoul # 타임존 한국 지정
Oracle DB - docker-compose.yml
version: '3.8'
services:
oracle:
image: oracleinanutshell/oracle-xe-11g
environment:
- ORACLE_PASSWORD= ....
- ORACLE_ALLOW_REMOTE=true
- TZ=Asia/Seoul # Oracle 컨테이너의 타임존을 한국 시간대로 설정합니다.
반응형
반응형
문제 상황
Docker를 이용해서 SpringBoot와 Oracle 11g 버전을 올리려 했는데 Oracle DB가 정상적으로 동작하는데 SpringBoot가 Oracle DB와 제대로 연결이 안되는걸 확인 오류 코드는
springboot-app_1 | java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
springboot-app_1 | ORA-01882: timezone region not found
문제 이유
Docker 내부에 타임존이 설정되어 있지 않거나, DB와 SpringBoot 간의 타임존이 달라서 JDBC에서 오류를 내고 있는 것
해결법
저는 SpringBoot Dockerfile과 docker-compose.yml 내부에 각 컨테이너의 TimeZone을 설정해주었습니다.
Spring boot - Dockerfile
ENV TZ=Asiz/Seoul # 타임존 한국 지정
Oracle DB - docker-compose.yml
version: '3.8'
services:
oracle:
image: oracleinanutshell/oracle-xe-11g
environment:
- ORACLE_PASSWORD= ....
- ORACLE_ALLOW_REMOTE=true
- TZ=Asia/Seoul # Oracle 컨테이너의 타임존을 한국 시간대로 설정합니다.
반응형