아마존 리눅스로 인스턴스를 만들어준다.

 

EC2 연결 후, docker 설치

sudo yum install docker 
sudo service docker start
sudo usermod -a -G docker ec2-user // ec2-user에게 권한부여

 

Docker Hub에 있는 Mysql 이미지 띄우기

EC2의 9876 포트와 mysql 기본포트인 3306을 연결해준다.

mysql의 비밀번호를 "password"로 설정해주고, msyql5.6을 (dockerhub 로 부터 다운로드 받아서)실행한다.

docker run -d \
-p 3306:3306 \
--name mysql-container \
-e MYSQL_DATABASE=explanet_dev \
-e MYSQL_ROOT_PASSWORD=password \
mysql:latest

 // EC2 인스턴스나 Docker 컨테이너를 종료시켜도 데이터가 사라지는 것을 방지하기 위해 저장할 폴더 지정

 

Spring Boot에서 빌드

spring boot 터미널에서 base-api 모듈을 클린하고 jar 파일로 만든다

./gradlew :base-api:clean :base-api:bootJar

 

 

 

 

도커파일 빌드

마찬가지로 스프링 부트 터미널에서 libs 폴더에 있는 jar을 로컬 도커 환경에서 빌드한다

아래는 작성한 도커파일이고,

FROM adoptopenjdk/openjdk11:alpine-jre
COPY build/libs/base-api-0.0.1-SNAPSHOT.jar base-api.jar
ENTRYPOINT ["java", "-Dspring.profiles.active=dev", "-jar", "base-api.jar"]

 

아래 커맨드로 도커 파일을 빌드할 수 있다.

 

Tag는 일종의 Alias 같은 역할을 하는데, 특히 latest의 경우는 사용자가 Pull을 할 때 Tag를 지정하지 않았을 때 사용된다.

docker build --tag=sypark9646/yapp-android2:1.0.0-beta --force-rm=true .

 

아래 커맨드를 사용하면 만들어진 이미지를 볼 수 있다.

docker images

 

도커 허브에 Push

만든 이미지를 도커 허브에 push한다.

docker push sypark9646/yapp-android2

 

 

AWS 터미널에서 spring boot jar 파일 run

aws 터미널에서 아까 Push 했던 이미지를 가져온다

docker pull sypark9646/yapp-android2:1.0.0-beta

스프링 파일을 run 시키기 -d를 쓰면 백그라운드로 돌아가도록 설정할 수 있다.

docker run -d -e "SPRING_PROFILES_ACTIVE=dev" -p 8080:8080 -t sypark9646/yapp-android2:1.0.0-beta

 

 


별개로 전체 삭제 커맨드는 아래와 같다

 

container 전체 삭제

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

이미지 전체 삭제

docker rmi $(docker images -q) 

+ Recent posts