1. Dockerfile 생성
우선 이렇게 작성 후 2번으로 넘어감
2. jar 로 빌드하기
show view -> gradle task
show view -> gradle Executions
빌드가 완료되면 순서대로 bootJar 더블클릭
완료되면 해당 프로젝트 경로 /build/libs 에 두 개의 jar파일이 생성됨
3. sts 에서 터미널을 실행
* 먼저 여기서 https://hub.docker.com/ 도커허브 사이트를 가입하고 repository 를 생성한다 * (별도 검색요망 )
다시 STS 로 돌아와서
프로젝트 우클릭 > show in local terminal > terminal
아래 terminal 탭 클릭
프로젝트 경로가 지정되어 있는데 이제 도커이미지를 생성할 차례 .
이제 아래의 도커이미지 생성 명령문 입력 ( 맨 뒤에 . 도 한칸 띄어서 입력해야 함 )
docker build --build-arg DEPENDENCY=build/dependency -t [도커허브아이디]/[도커허브 레포지토리] .
완료되면 도커허브에 푸시
docker push [도커허브아이디]/[도커허브 레포지토리]
도커허브 사이트에 푸시 되어 있는지 확인
4. 도커허브 업로드 된 이미지를 클라우드 서버에서 pull
클라우드 서버로 돌아와서 ..
# 도커 이미지 생성 ( 스프링부트 )
docker pull [도커허브아이디]/[도커허브 레포지토리]
docker images
# 도커 컨테이너 생성
docker run --name springboot-pj -d --network test -p 80:80 tmdwns0531/simple-spring-boot bash
docker ps -a
docker ps
( docker ps -a 와 docker ps 결과값이 같으면 성공 )
docker start [스프링부트 컨테이너이름]
docker start [mysql 컨테이너이름]
여기까지 성공하면 정상적으로 웹서비스를 시작 할 수 있다.
이제 등록한 DNS (도메인) 로 브라우저 주소창에 입력
+ PS )
# docker ps -a 와 docker ps 차이점
docker ps 는 현재 가용가능한 컨테이너 목록
docker ps -a 는 전체 컨테이너 목록 (에러 발생한 컨테이너도 포함)
#컨테이너 목록에서 status 가 exited 가 보인다면 ?
위와 같이 Exited 가 있으면 docker start [컨테이너이름] 으로도 실행불가 .
docker logs [컨테이너이름] 으로 에러로그확인가능
#docker run --name springboot-pj -d --network test -p 80:80 [도커허브아이디]/[도커허브 레포지토리] bash 은 각각 무슨 뜻인가 ?
run 은 컨테이너생성 / name 은 컨테이너이름 /
-d 는 백그라운드실행 (없으면 컨테이너 접속함 . docker exec -it [컨테이너이름] bash 를 수행 ) /
--network 는 컨테이너 끼리 통신하는 id / -p 는 port번호이며 여기서 80 : 80 은 요청받는 host 서버 포트와 컨테이너 포트 매핑 (mysql 이나 스프링부트는 host 서버가 아닌 컨테이너 안에서 동작하기 때문에 매핑필요 )
CI/CD 툴 젠킨스 관련은 다음에 ..
수고하셨습니다
'AWS CLOUD SERVER 배포 (feat. UBUNTU)' 카테고리의 다른 글
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(5)- (0) | 2021.09.16 |
---|---|
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(4)- (0) | 2021.09.16 |
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(3)- (0) | 2021.09.16 |
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(2)- (0) | 2021.09.16 |
도커 /클라우드서버(AWS lightsail + 우분투 ) 를 이용한 배포 -최종(1)- (0) | 2021.09.16 |