카테고리 없음

도커(docker) Dockerfile 을 이용한 centos8 + java17 + tomcat9 사용하기

소행성왕자 2021. 12. 2. 14:59

도커(docker) Dockerfile 을 이용한  centos8 + java17 + tomcat9 사용하기 

 

도커파일을 아래 내용으로 만듭니다.

$ vi Dockerfile

FROM centos:8
MAINTAINER naya
:wq

 

.docker build 명령으를 통해 tag를 통해 REPOSITORY 이름을 설정하고 현재 폴더에 Dockerfile 이용해 빌드 실행
기존 모두 초기화후 다시실행하려면 옵션 --no-cache 추가
$ docker build --no-cache --tag centos8 ./



$ docker build --tag centos8 ./


Sending build context to Docker daemon 2.048kB
Step 1/2 : FROM centos:8
8: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:8
---> 5d0da3dc9764
Step 2/2 : MAINTAINER naya
---> Running in 3f507c841616
Removing intermediate container 3f507c841616
---> 1a8c5f144936
Successfully built 1a8c5f144936
Successfully tagged centos8:latest



이미지 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos8 latest 1a8c5f144936 17 seconds ago 231MB
centos 8 5d0da3dc9764 2 months ago 231MB



명령어를 추가하면서 build를 주기적으로 해주면서 디버깅 가능
history는 docker 내부 빌드 로직에 따라 알아서 관리가 되며 빌드가 성공적으로 이루어졌을때 다음번 빌드과정에서는 이전 빌드과정을 Skip하게 됨.
명령어에 문제가 있거나 오타가 있거나할시 빌드가 실패되며 다음 빌드시 재시도

 

컨테이너 내부 java17 다운로드 및 디폴트 디렉토리 설정
$ vi Dockerfile


...
...


WORKDIR /usr/local/src

# java17 install
RUN yum -y install wget curl
RUN wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
RUN tar xvf openjdk-17_linux-x64_bin.tar.gz
RUN mv jdk-17 /opt/
RUN echo "export JAVA_HOME=/opt/jdk-17" >> ~/.bashrc
RUN echo "export PATH=$PATH:$JAVA_HOME/bin " >> ~/.bashrc
RUN source ~/.bashrc
RUN echo $JAVA_HOME


# tomcat9 install
RUN wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.55/bin/apache-tomcat-9.0.55.tar.gz
RUN tar -xvzf apache-tomcat-9.0.55.tar.gz
RUN mv apache-tomcat-9.0.55 tomcat9


# tomcat 실행 (안됨)
#WORKDIR /usr/local/tomcat9
#EXPOSE 8080
#CMD ["./bin/startup.sh", "run"]

 

최종 docker image 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos8 latest 2b55baf73383 2 minutes ago 1.15GB
centos 8 5d0da3dc9764 2 months ago 231MB

 

컨테이너 시작 및 접속
$ docker run -it -p 8089:8080 --name tomcat9 centos8


전체 Dockerfile

FROM centos:8

MAINTAINER naya

WORKDIR /usr/local/src

# java17 install
RUN yum -y install wget curl
RUN wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
RUN tar xvf openjdk-17_linux-x64_bin.tar.gz
RUN mv jdk-17 /opt/
RUN echo "export JAVA_HOME=/opt/jdk-17" >> ~/.bashrc
RUN echo "export PATH=$PATH:$JAVA_HOME/bin " >> ~/.bashrc
RUN source ~/.bashrc

# tomcat9 install
RUN wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.55/bin/apache-tomcat-9.0.55.tar.gz
RUN tar -xvzf apache-tomcat-9.0.55.tar.gz
RUN mv apache-tomcat-9.0.55 /usr/local/tomcat9

# tomcat 실행 안됨 -> 수동으로
#WORKDIR /usr/local/tomcat9/bin
#EXPOSE 8080
#CMD ["startup.sh", "run"]