aws ec2에 docker 배포

chaen-ing·2024년 7월 12일
0

AWS

목록 보기
1/1

m1맥 사용, gradle 기준
준비할 것 : 스프링 프로젝트, ec2 생성하고 프로젝트와 연결 -> 추후에 글쓰도록 하겠음
나중에 다시 볼 수 있도록 최대한 자세히 써보겠음

1. Dockerfile 생성

경로 참고

FROM amazoncorretto:17.0.7-alpine
COPY build/libs/*.jar shoppingmall.jar
ENV TZ Asia/Seoul
ENTRYPOINT ["java", "-jar","-Dspring.profiles.active=prod", "shoppingmall.jar"]

위의 내용을 Dockerfile에 넣어주도록 하자

jar파일 경로가 틀리면 에러 난다. 경로 잘 체크해서 넣어주도록 하자

스프링 3.x.x 버전은 자바 17버전

2. build.gradle 수정

bootJar {
	jar.enabled = true
}

jar {
	manifest {
		attributes 'Main-Class': 'com.testing.test.TestingApplication'
	}
	enabled = false
}

다음과 같은 내용을 추가해준다

3. jar 파일 빌드

./gradlew clean build -x test

3~5번 과정은 intelij ide console에서 입력

4. 도커 로그인 후 이미지 생성
이때 도커 계정이 필요하므로 없을시 회원가입
도커 허브를 켜놓은 상태라면 비밀번호 없이도 로그인 가능

docker login 
// 성공시 Login Succeeded가 뜰것임

로그인이 안되는 경우 (깃허브로 도커 회원가입)
도커 허브 > account setting > security > access token 발급 받기
$ docker login -u [사용자이름]
입력 후 password에 발급받은 토큰 넣어주면 로그인된다

로그인 후에 도커 이미지를 빌드해준다

docker build -t [유저이름]/[이미지명] --platform linux/amd64 .

m1 맥은 --platform 부분도 넣어줘야함

마지막에 .도 생략하면안된다

도커 데스크탑에서 images에 들어가면 생성된것 확인가능

docker images

명령어로도 확인 가능하다

5. 도커 이미지 push

docker push [사용자명]/[이미지명]

6. 터미널에서 ec2 인스턴스 접속 및 우분투 도커 설치

ssh -i [pem 키] ubuntu@[ip]

우분투에 도커 설치는
https://velog.io/@jbro321/Docker-Ubuntu-22.04.3에-docker-설치
해당 블로그 참고함

도커 잘 설치되었는지 확인하려면 docker -v 명령어 입력해보자

7. docker image pull & run

sudo docker pull [사용자명]/[이미지명]
sudo docker run -d -p 8080:8080 [사용자명]/[이미지명]

8. 사이트 접속해보기


접속할때는 public ip 주소:8080으로 접속해주면된다

+) 참고사항들

Bind for 0.0.0.0:8080 failed: port is already allocated.에러 해결법
$ sudo lsof -i tcp:8080
위에서 실행중인 프로그램 pid로 종료시키기
$ sudo kill -9 [pid]

https://seulcode.tistory.com/557
위 블로그 참조하여 권한부여를 해줘야 재접속했을때도 제대로 작동한다

docker ps -a

를 통해서 콘테이너 목록들 확인한 후 안쓰는 컨테이너들 정리해주기

docker stop [id 또는 이름]
docker rm [id 또는 이름]

컨테이너 실행 중지하고 지워주면됨

접속안될때 재접속 방법
똑같이 ec2 인스턴스 접속 후

docker ps -a

위 명령어로 container id 혹은 콘테이너 이름을 확인한 후.

sudo docker start [cotainer id 또는 이름]

위 명령어를 통해 재접속

profile
💻 개발 공부 기록장

0개의 댓글

관련 채용 정보