매일 조금씩

docker로 서버에 코드반영, 배포하는 방법 본문

공부/docker

docker로 서버에 코드반영, 배포하는 방법

mezo 2022. 2. 15. 14:51
728x90
반응형

1. 공용 서버에 접속(ssh)

ssh -p [port번호] root@[ip번호]

password : [서버 접속 비밀번호]

 

2. 프로젝트가 있는 폴더로 들어감 (프로젝트명: meeting-document-server)

cd /root/meeting-document-server

 

3. 현재 도커로 띄워진 컨테이너 확인 -> Spring, mariadb 두개가 있음

docker ps

 

4. 깃의 코드를 서버에 반영해서 새로 컨테이너를 띄우고 싶으면?

git pull

./change.sh

-> change.sh에 기존 컨테이너를 삭제하고 새로 컨테이너를 띄우는 스크립트가 들어가있다. 

./gradlew bootJar
docker build -t meeting-document:v0.0.10 .
docker stop meeting-document
docker rm meeting-document
docker run -d -p 18080:18080 --name meeting-document -v /root/meeting-document-server/volume:/documents -v /root/meeting-document-server/config:/config meeting-document:v0.0.10

한줄한줄 해석하면..

./gradlew bootJar

-> Spring Boot는 Plugin을 통해 Gradle을 지원한다.

-> bootJar은 실행가능한 jar을 빌드하는 태스크로, 플러그인에 포함되어 있다.


docker build -t meeting-document:v0.0.10 .docker stop meeting-document
docker rm meeting-document
docker run -d -p 18080:18080 --name meeting-document -v /root/meeting-document-server/volume:/documents -v /root/meeting-document-server/config:/config meeting-document:v0.0.10

 

여기서 -d 이걸 쓰면 백그라운드로 실행시킨다는 것이다. 그래서 Ctrl + C 로 나와도 죽지 않는다. 

그러나 -d 를 안쓰면 데몬형태로 실행되어서 컨테이너가 자꾸 죽거나 그런에러가 있을 때 에러를 바로 볼수 있으며, 명령어를 통해 나오는 순간 바로 죽는다. 

 

 

5. 로그를 보고싶으면?

docker exec -it meeting-document /bin/sh

해서 서버 컨테이너에 접속한 후..

cd log

해서 ls 찍고 보거나

tail -f spring.log

해서 실시간으로 찍히는거 계속 확인도 가능

 

728x90
반응형