이전 게시글에서 생성한 컨테이너(tomcat, oracle 12c)를 docker compose를 이용하여 한번에 관리하도록 구성한다.
1. Tomcat Dockerfile
Docker Hub의 Tomcat 공식 이미지를 그대로 사용하기에는 추가적으로 설정이 필요한 것들이 몇가지 있다.
Dockerfile로 구성하여 이미지를 생성한다.
작성한 Dockerfile은 아래와 같다.
FROM tomcat:latest
MAINTAINER DHPark<rharnr777@gmail.com>
EXPOSE 8080
RUN ["rm", "/etc/localtime"]
RUN ["ln", "-sf", "/usr/share/zoneinfo/Asia/Seoul", "/etc/localtime"]
COPY setenv.sh /usr/local/tomcat/bin/
COPY OJDBC-Full /usr/local/tomcat/lib/
# jdbc:oracle:thin:@192.168.0.9:1521/MY_PDB.oracledb.my.local
한 줄씩 설명하면 다음과 같다.
FROM tomcat:latest
- docker hub에서 tomcat 이미지 불러오기(local에 있다면 로컬의 이미지를 사용한다.)
MAINTAINER Dohyun, Park rharnr777@gmail.com
- 작성자 명시(옵션)
EXPOSE 8080
- 8080포트 오픈
RUN ["rm", "/etc/localtime"]
RUN ["ln", "-sf", "/usr/share/zoneinfo/Asia/Seoul", "/etc/localtime"]
- localtime을 아시아/서울 지역으로 설정
COPY setenv.sh /usr/local/tomcat/bin/
- 톰캣의 시간을 ORACLE DB와 맞추기 위해 localtime 설정(시스템 timezone과 별개)
COPY OJDBC-Full /usr/local/tomcat/lib/
- OJDBC 드라이버 복사
# jdbc:oracle:thin:@192.168.0.9:1521/MY_PDB.oracledb.my.local
- 톰캣에서 oracle db에 연결하기 위한 주소(주석)
추가 파일
setenv.sh 파일과 OJDBC 드라이버를 dockerfile과 같은 경로에 둔다.
1. setenv.sh
#!/bin/bash
export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+9"
2. OJDBC 드라이버 다운로드 경로
www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html
준비가 되었다면 docker build -t [이미지명] .
으로 이미지를 빌드한다.
빌드가 완료되면 다음처럼 이미지가 생성된다. = mytomcat
cli 환경에서는 docker images
명령으로 확인할 수 있다.
Docker-compose
두 개의 이미지를 동시에 실행할 수 있는 docker-compose.yml를 작성한다.
version: '3'
services:
oracle_server:
container_name: oracle-db-compose
image: 'store/oracle/database-enterprise:12.2.0.1-slim'
ports:
- "1521:1521"
volumes:
- /Users/gom/dockerdir:/ORCL
environment:
- DB_SID=MY_SID
- DB_PDB=MY_PDB
- DB_DOMAIN=oracledb.my.local
- TZ=Asia/Seoul
tomcat_server:
container_name: mytomcat
image: 'mytomcat'
ports:
- "8080:8080"
volumes:
- /Users/gom/dockercompose/tomcat:/usr/local/tomcat/webapps
oracle 부분은 앞선 포스팅에서 다루었으므로 자세하게 다루지 않는다.
작성 후 컨테이너를 실행시키면 다음과 같이 동작하는 것을 확인할 수 있다.
3. DB 연결 확인
ID: SYSTEM
PS: Oradoc_db1
입력 후 연결하면 연결에 성공한다.
JSP, Tomcat과의 연결도 잘 된다.
참고
'Security > Cloud Computing' 카테고리의 다른 글
[AWS] Serverless Goat 풀이 - 클라우드 모의해킹 (0) | 2021.06.01 |
---|---|
[MINIO 설치] 라즈베리파이에 AWS S3 환경 구성하기(Object Storage) (0) | 2021.05.26 |
[AWS] 고객 센터 문의하기 (0) | 2021.04.19 |
[Docker] Oracle DB(Oracle 12c) 구성하기 (0) | 2021.03.15 |
[Docker] Docker 개요 및 설치 방법 (0) | 2021.03.14 |