2021.10.10 - [실전 공부/AWS&Docker&Linux] - [SERVER] 리눅스 + 도커 기반 서버 관리 시 정말 자주 사용하는 명령어 모음
클린, 빌드, 패키징, 도커 빌드, 실행 자동화 스크립트
#!/bin/bash
VAR=`sudo docker ps -a -q --filter name="back"` \
&& sudo mvn clean -DskipTests package \
&& sudo docker build -t back .
read -p "Do you want restart the container now? (y/n) " RESP
if [ "$RESP" = "y" ]; then
sudo docker rm -f $VAR \
&& sudo {도커 실행 스크립트}
else
echo "Finish"
fi
* 참고 : 스크립트에서 역슬래시(\)는 아래 줄로 이어쓰기의 개념입니다.
직접 명령어를 입력하고자 한다면 역슬래시를 지우고 한줄로 연결하여 실행해야 합니다.
상세 설명
1. 현재 실행중인 컨테이너의 ID를 찾아 VAR 변수에 저장
- 백틱 사이에 들어간 스크립트의 결과가 저장 된다.
# 현재 이름이 back으로 실행중인 컨테이너 찾기
VAR=`sudo docker ps -a -q --filter name="back"`
2. 메이븐 클린과 테스트 없이 패키지 생성을 동시에 수행
- && 연산자를 사용해 앞의 실행이 성공적으로 수행 되었을때만 다음 스크립트가 실행 되도록 한다.
# 메이븐 클린 + 테스트 없이 패키지
&& sudo mvn clean -DskipTests package
3. "back"을 태그로 설정한 도커 이미지를 빌드
- && 연산자를 사용해 앞의 실행이 성공적으로 수행 되었을때만 다음 스크립트가 실행 되도록 한다.
# 태그를 back으로 달아서 빌드
&& sudo docker build -t back .
4. 사용자에게 입력을 받는다.
- y 또는 n
# 입력값을 받음
read -p "Do you want restart the container now? (y/n) " RESP
5. 입력값이 y이면 then 구절 실행, 아닐 경우 else 구절 실행 후 fi 구절에서 종료
- 입력값이 y일 때 VAR 변수에 담아두었던 container Id를 이용해 현재 실행중인 back 컨테이너 종료.
- && 연산자를 이용해 컨테이너 종료가 정상 완료 되었을 때 새롭게 빌드 된 도커를 실행(도커 실행 스크립트)
# 입력값이 y 이면 then 이하 명령어 실행
if [ "$RESP" = "y" ]; then
# 현재 실행중인 back 컨테이너 종료 및 삭제 && 새로 빌드한 도커 실행
sudo docker rm -f $VAR
&& sudo 도커 실행 스크립트 # (태그 설정, 포트, 볼륨 잡기 등등)
else
# 입력값이 n이면 종료
echo "Finish"
fi
이러한 스크립트 작성을 통해 메이븐 빌드부터 도커 빌드까지 한번에 수행 할 수 있다.
또한 미리 실행 시켜둔 뒤 빌드가 끝나면 사용자의 응답에 따라 전환 대기를 하기 때문에 컨테이너 교체에 문제가 없을 때까지 대기시킨 뒤 전환 할 수 있다는 이점이 있다.
'공부 기록' 카테고리의 다른 글
[정보처리기사] 합격 수기 (동 회차 + 1코인 + 한 달 공부) (0) | 2021.12.05 |
---|---|
[AWS_DB] AWS EC2에 올린 Docker Container DB에 DB 툴로 접속하기 (0) | 2021.12.04 |
[JAVA] 요즘 자주 사용한 메서드 (0) | 2021.11.14 |
[JAVA]구분자 없는 문자열을 배열로 변환 (0) | 2021.11.07 |
MYSQL에서의 조건문 (CASE- WHEN/ EXISTS/ IFNULL) (0) | 2021.10.31 |
댓글