docker

[docker] Dockerfile과 쉘 스크립트를 이용하여 스프링부트에서 빌드한 war파일 인스턴스 자동화 실행시키기

밍글링글링 2022. 11. 30.
728x90

아래는 dockerfile 이고,

Dockerfile
FROM tomcat:8.5.46-jdk8-openjdk

# tomcat root 경로 삭제
RUN rm -Rf /usr/local/tomcat/webapps/ROOT

ARG ENVIRONMENT
ENV SPRING_PROFILES_ACTIVE=${ENVIRONMENT}

ARG WAR_FILE=*.war
COPY ${WAR_FILE} /usr/local/tomcat/webapps/ROOT.war


#: docker build --build-arg ENVIRONMENT=dev -t mingty .
#: docker run -it -d --name mingty -p 3100:8080 -v /var/docker/develop/mingty:/var/docker/develop/mingty -e TZ=Asia/Seoul mingty

 

아래 소스는 기존 실행되고 있는 컨테이너와  이미지를 삭제하고, dockerfile로 이미지로 새로 빌드하여,

도커 인스턴스를 실행시키는 쉘 스크립트이다.

restartup.sh
#!/bin/bash

docker_name="mingty"
docker_env="dev"
docker_inPort="3100"
docker_outPort="8080"
docker_file_path="/var/docker" #dockerfile 이 있는 위치

echo '#: Stop Docker Container mingty'
docker stop ${docker_name}

echo '#: Remove Docker Container mingty'
docker rm ${docker_name}

echo '#: Remove Docker Image mingty '
docker rmi ${docker_name}

echo '#: Build Docker Image mingty'
docker build --build-arg ENVIRONMENT=${docker_env} -t ${docker_name} ${docker_file_path}

echo '#: Run Docker Container mingty'
docker run -it -d --name ${docker_name} -p ${docker_inPort}:${docker_outPort} -v /var/docker/:/var/docker -v /upload/file:/upload/file -e TZ=Asia/Seoul ${docker_name}

 

제가 쓰는 서버에서 구동되게 만들어서... 독자들이 알아서 커스텀해서 사용하길....
728x90

댓글