Dockerfile을 사용한 tomcat에 War file 배포하기.

|

📦 Docker 실전 가이드 시리즈 (전체 4편)

  1. Docker 기본 명령어 정리
  2. Dockerfile로 Tomcat에 War 파일 배포하기 (현재 글)
  3. Docker로 Jenkins 설치하기
  4. Docker로 MySQL 설치하기 (한글 인코딩 포함)

사내에서 사용하는 백오피스 시스템을 Dockerfile를 통해 배포할 일이 생겨 설정 후 간단하게 작성해본다.
오늘 배포 관련해서 로컬에서만 처음 설정해 본 내용이라 학습하는대로 내용은 보충을 좀 해야겠다.

[도커 명령어 참고 : http://jmlim.github.io/docker/2019/02/25/docker-command/]

1. 도커 설치 관련

$ sudo apt-get install docker.io  ( 작성자는 이 명령어만 사용하여 설치하였다. )

도커 설치 후 현재 접속중인 사용자에게 권한을 주어야 사용가능하다.

sudo usermod -aG docker $USER 또는 권한을 줄 User의 ID

2. 소스의 루트경로에 Dockerfile 작성

FROM tomcat:8.0.51-jre7-alpine  # docker 안의 tomcat8 셋팅, 사내 백오피스는 자바 7 사용.

ENV TZ=Asia/Seoul ## 타임존 서울로 설정 후 적용
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN rm -Rf /usr/local/tomcat/webapps/ROOT # 기존 도커안의 tomcat의 루트 경로 삭제 
COPY target/배포후 만들어지는 WAR 파일 이름.war /usr/local/tomcat/webapps/ROOT.war # 루트 경로에 복사
ENV JAVA_OPTS="-Dserver.type=dev" # 서버타입 설정, 프로퍼티 파일로 개발 운영 환경 구분..

3. 소스를 내려받은 후 소스의 루트 경로에서 docker build 하기.

$ git clone 소스경로
$ mvn clean package
$ docker build -t ticketmall_backoffice .

4. 이미지 생성 된것 확인

$ docker images

REPOSITORY              TAG                  IMAGE ID            CREATED             SIZE
ticketmall_backoffice   latest               51af9b31cb45        1 hours ago         301MB
tomcat                  8.0.51-jre7-alpine   2304e340e238        10 months ago       145MB

5. 위에서 만든 도커 컨테이너 실행

$ docker container run -p 80:8080 -it ticketmall_backoffice 

80 포트로 컨테이너에 접근할 시 8080으로 포워딩 해줌. 톰캣은 잘 실행된다.

참고자료
https://www.youtube.com/watch?v=GdnZkiif64Q

Comments