본문 바로가기
가상환경

MAC Docker 환경 설정을 위한 자동화 Shell Script

by E_van 2024. 10. 24.

ocker 환경을 다수 생성하거나 반복적으로 설정하는 작업은 번거롭고 시간이 많이 소요됩니다. 이를 해결하기 위해, 간단한 Shell Script를 작성하여 Docker 프로젝트를 자동으로 설정하고 구성할 수 있도록 만들어 보았습니다. 이 글에서는 해당 스크립트를 설명하고, 이를 활용해 빠르게 Docker 환경을 구축하는 방법을 안내합니다.


Shell Script의 목적

이 스크립트는 다음 작업을 자동으로 처리합니다:

  1. 로컬 호스트에 개발용 도메인 추가
  2. 프로젝트 디렉토리 및 구조 생성
  3. Docker 관련 디렉토리 준비 및 구성
  4. 프로젝트 저장소를 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
  • 모든 작업이 성공적으로 완료되면 완료 메시지를 출력하고 스크립트를 종료합니다.

실행 방법

위 스크립트를 파일로 저장하고 실행하면 자동으로 프로젝트 환경이 설정됩니다.

  1. Shell Script 파일 저장:위 스크립트 내용을 붙여 넣은 뒤 저장합니다.
    • vi setup-docker.sh
  2. 실행 권한 부여:
    • chmod +x setup-docker.sh
  3. 스크립트 실행:
    • ./setup-docker.sh
  4. 실행 후 Docker 컨테이너 생성:
    • docker-compose up -d

docker-compose.yml 파일에 따라 컨테이너가 백그라운드에서 실행됩니다.


스크립트를 활용한 자동화의 장점

  1. 반복 작업 감소: 매번 수동으로 실행해야 하는 여러 명령어를 스크립트 하나로 처리.
  2. 오류 방지: 각 단계에서 오류를 확인하여 안정적으로 실행.
  3. 팀 협업 강화: 팀원들에게 스크립트를 공유하여 동일한 환경에서 개발 가능.

결론

이 Shell Script는 Docker 환경을 빠르고 효율적으로 구성할 수 있는 간단한 방법을 제공합니다. 이를 통해 개발자는 반복 작업에서 벗어나 실제 개발과 문제 해결에 더 많은 시간을 투자할 수 있습니다. 또한, 스크립트를 수정하여 프로젝트별로 커스터마이징하면 더 넓은 범위의 자동화도 가능합니다.