아마존 리눅스로 인스턴스를 만들어준다.
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)
'프로젝트 > 배운점' 카테고리의 다른 글
과제를 하면서 배운 점 - Vue.js (0) | 2020.11.28 |
---|---|
Spring Boot + JPA: QueryDSL 사용하여 동적 쿼리로 게시판 filtering/search (0) | 2020.11.24 |
Spring Boot: Interceptor로 토큰 인증 및 사용자 Status 확인 (0) | 2020.11.07 |
Spring Boot: Redis를 사용하여 embedded cache 구현하기 (0) | 2020.09.29 |
개념 정리 (0) | 2020.07.26 |