본문 바로가기
2024 웹

Java-[JSP + Sevelt](Eclipse) Project [Docker + AWS] 를 이용한 배포

by concho 2024. 5. 13.

인터넷에 AWS EC2, AWS RDS, AWS S3 등 인스턴스 생성법 + java project 와의 연동 과정을 찾아서 하기

=> 해당 project는 aws 1.x 라이브러리를 이용함.

=> java17, sevelt, jsp, jstl, mariaDB

 

1. 이클립스에서 .war 파일로 빌드
=> war 이란 자바 서버 페이지, 자바 서블릿, 정적 자원 등을 한데 모아 배포하는데 사용되는 Jar파일이다.
=> 압축 파일이라는 뜻

2. 도커 desktop에서 tomcat 해당 버젼의 이미지를 도커 hub에서 pull받기

3. pull 받은 tomcat 이미지를 기반으로 .war 파일을 빌드할 설정 파일(Dckerfile)을 
C 드라이브 어딘가에 아래와 같이 작성
=> .war 파일과 Dockerfile을 같은 폴더에 넣고 ./ 로 상대경로를 이용해 찾는게 전 편함
/usr/local/tomcat/webapps/(war 파일 이름).war 이 경로는 톰캣의 기본 경로임
========================
# 톰캣 베이스 이미지 사용
FROM tomcat:9.0

# .war 파일을 톰캣의 webapps 디렉토리로 복사
COPY ./semi_project.war /usr/local/tomcat/webapps/semi_project.war

# 컨테이너가 8080 포트를 사용하도록 설정
EXPOSE 8181

# 톰캣 서버 실행
CMD ["catalina.sh", "run"]
========================

4. 해당 폴더에서 마우스 우클릭 후 해당 디렉토리에서 cmd 창 켜기

5. cmd 에 
docker build -t (도커 가입한 user name)/(도커 이미지 이름 넣기) . 
를 입력해 도커 이미지를 빌드

6. 도커 desktop을 이용해 도커 이미지를 hub에 업로드

7. aws ec2에서 도커 hub에 올라와있는 이미지를 다운로드해서 컨테이너로 실행
명령어 =>
8090은 톰캣의 포트
80은 aws ec2 열려있는 포트로 설정

허브에서 이미지 다운
sudo docker pull concho/semi-project2

다운받은 이미지 컨테이너화
sudo docker run -d -p 81:8080 -e TZ=Asia/Seoul concho/semi-project2
sudo docker run -p 81:8080 -e TZ=Asia/Seoul concho/semi-project2

[만약 이미 80포트를 다른 컨테이너가 사용중이라면 인바운드 사용자 지정 tcp로 새로운 포트 열어주기]

끝..





도커 로그인 퍼블릭 으로 허브에 올리면 필요 없음
https://velog.io/@jummi10/create-Docker-Image-with-SpringBoot
참고

로컬 도커 이미지로 빌드
docker build -t concho/concho_img4 .
도커가서 허브에 올리기

모든 컨테이너 삭제
sudo docker rm $(sudo docker ps -aq)

컨테이너 삭제
$ sudo docker rm 3ff994564480

docker image 다운
$ sudo docker pull concho/concho_img2

$ sudo docker rm -f $(docker ps -qa)
도커 모두 한번에 종료

$ sudo docker pull concho/concho_img4
도커 다운
===============================================
sudo docker run -d -p 80:8090 -e TZ=Asia/Seoul concho/concho_img4


sudo docker run -p 80:8090 -e TZ=Asia/Seoul concho/concho_img4


$ sudo docker run -d -p 80:8090 concho/concho_img4
or
$docker run -d -p 80:8080 [docker계정]/[이미지명]
도커허브에 있는 이미지 컨테이너 실행

$ sudo systemctl status docker
도커 실행중인지 보기

$ sudo docker ps
실행 중인 Docker 컨테이너 확인하기

$ sudo docker stop [container_id783942b92005]
도커 중지

$ sudo docker rmi concho/concho_img2
도커 이미지 삭제

$ sudo docker rmi -f $(sudo docker images -aq)
전체 이미지 삭제
docker build -t concho/concho_img2:latest .
덮어씌우기

sudo docker run -e TZ=Asia/Seoul -d concho/concho_img2:latest
타임존과 


 

 

SpringBoot로 Docker Image 만들어보기

IntelliJ - New Project - Spring Initializr - 새로운 스프링 프로젝트 생성root에 dockerfile 파일 생성 후 아래 코드 붙여넣기bootJar로 buildJAR_FILE=build/libs 디렉토리 안에 jar 파일이 생긴다.t

velog.io

 

'2024 웹' 카테고리의 다른 글

프로젝트 기반 지식  (0) 2024.05.16
시너어를 위한 플랫폼 시니어텐트  (0) 2024.05.13
git pull 요청시 merge error  (0) 2024.04.10
class loader 장단점  (0) 2024.04.10
git pull 받기  (0) 2024.04.09

댓글