일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- alter
- javascript
- set
- Calendar
- Java
- union_find
- dfs
- 큐
- 스프링부트
- 힙덤프
- priority_queue
- scanner
- spring boot
- date
- JPA
- BFS
- math
- Union-find
- sql
- GC로그수집
- List
- 리소스모니터링
- map
- Properties
- string
- html
- CSS
- 스택
- NIO
- deque
- Today
- Total
매일 조금씩
docker로 서버에 코드반영, 배포하는 방법 본문
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
해서 실시간으로 찍히는거 계속 확인도 가능