ocker 환경을 다수 생성하거나 반복적으로 설정하는 작업은 번거롭고 시간이 많이 소요됩니다. 이를 해결하기 위해, 간단한 Shell Script를 작성하여 Docker 프로젝트를 자동으로 설정하고 구성할 수 있도록 만들어 보았습니다. 이 글에서는 해당 스크립트를 설명하고, 이를 활용해 빠르게 Docker 환경을 구축하는 방법을 안내합니다.
Shell Script의 목적
이 스크립트는 다음 작업을 자동으로 처리합니다:
- 로컬 호스트에 개발용 도메인 추가
- 프로젝트 디렉토리 및 구조 생성
- Docker 관련 디렉토리 준비 및 구성
- 프로젝트 저장소를 Clone하여 초기화
위 과정을 자동화하면 개발자는 직접 명령어를 입력하는 시간을 줄이고, 빠르게 개발 환경을 구성할 수 있습니다.
스크립트 코드 분석
아래는 작성된 Shell Script의 코드와 주요 설명입니다.
1. 오류 체크 함수
function check_status {
if [ $? -ne 0 ]; then
echo "오류 발생: 작업을 중단합니다."
exit 1
fi
}
- check_status 함수는 각 명령어 실행 후 상태 코드를 확인하여 오류 발생 시 스크립트를 중단합니다.
- 이는 스크립트가 중간에 실패하더라도 불필요한 작업을 계속하지 않도록 방지합니다.
2. Mac 비밀번호 입력
bash
코드 복사
read -s -p "Mac 비밀번호: " password echo
read -s -p "Mac 비밀번호: " password
echo
- 비밀번호 입력 시 화면에 출력되지 않도록 -s 옵션을 사용했습니다.
- 이후 sudo 명령에 입력한 비밀번호를 활용합니다.
3. 로컬 호스트 파일 수정
echo "[1/4] 호스트 추가"
if ! grep -q "local-site.test.co.kr" /etc/hosts; then
echo "127.0.0.1 local-site.test.co.kr" | sudo tee -a /etc/hosts
fi
check_status
- grep 명령어로 /etc/hosts 파일에 local-site.test.co.kr이 이미 등록되어 있는지 확인합니다.
- 등록되어 있지 않다면 해당 도메인을 추가합니다.
- 개발 도메인과 IP 매핑을 통해 로컬 환경에서 특정 URL로 애플리케이션을 테스트할 수 있습니다.
4. 프로젝트 구조 생성
echo "[2/4] 프로젝트 구조 생성"
echo "$password" | mkdir -m 755 ../project && cd ../project
check_status
- mkdir 명령어로 project 디렉토리를 생성하고, 권한을 755로 설정합니다.
- 생성된 디렉토리로 이동하여 이후 작업을 진행합니다.
5. Docker 디렉토리 준비
echo "[3/4] Docker 구조 생성"
echo "$password" | mv ../project-docker ./ && mkdir -m 755 app && cd ./app
check_status
- project-docker 디렉토리를 현재 프로젝트 폴더로 이동하고, app 디렉토리를 생성합니다.
- 이후 앱 소스 코드와 관련된 파일들은 app 디렉토리에 위치하게 됩니다.
6. 프로젝트 Clone
echo "[4/4] 프로젝트 Clone"
echo "$password" | git clone --branch dev ${url}
check_status
- 원격 Git 저장소에서 프로젝트를 Clone합니다.
- dev 브랜치를 지정하여 특정 브랜치 기반으로 작업을 시작할 수 있습니다.
7. 완료 메시지 출력
echo "작업 완료"
exit
- 모든 작업이 성공적으로 완료되면 완료 메시지를 출력하고 스크립트를 종료합니다.
실행 방법
위 스크립트를 파일로 저장하고 실행하면 자동으로 프로젝트 환경이 설정됩니다.
- Shell Script 파일 저장:위 스크립트 내용을 붙여 넣은 뒤 저장합니다.
-
vi setup-docker.sh
-
- 실행 권한 부여:
-
chmod +x setup-docker.sh
-
- 스크립트 실행:
- ./setup-docker.sh
- 실행 후 Docker 컨테이너 생성:
- docker-compose up -d
docker-compose.yml 파일에 따라 컨테이너가 백그라운드에서 실행됩니다.
스크립트를 활용한 자동화의 장점
- 반복 작업 감소: 매번 수동으로 실행해야 하는 여러 명령어를 스크립트 하나로 처리.
- 오류 방지: 각 단계에서 오류를 확인하여 안정적으로 실행.
- 팀 협업 강화: 팀원들에게 스크립트를 공유하여 동일한 환경에서 개발 가능.
결론
이 Shell Script는 Docker 환경을 빠르고 효율적으로 구성할 수 있는 간단한 방법을 제공합니다. 이를 통해 개발자는 반복 작업에서 벗어나 실제 개발과 문제 해결에 더 많은 시간을 투자할 수 있습니다. 또한, 스크립트를 수정하여 프로젝트별로 커스터마이징하면 더 넓은 범위의 자동화도 가능합니다.