▶︎ 스크립트를 사용하여 여러 스택 배포
bash 스크립트를 사용하여 여러 docker-compose.ymal
파일을 한 번에 배포해보도록 하겠다.
#!/usr/bin/bash
# stack 이름과 compose file 정의
stacks=(
"stack1:stack1-compose.yaml"
"stack2:stack2-compose.yaml"
"stack3:stack3-compose.yaml"
)
# Loop
for stack in "${stacks[@]}"
do
IFS=":" read -r name file <<< "$stack"
echo -e "Deploying $name using $file\n"
docker stack deploy -c "$file" "$name"
done
IFS=":"
: 내부 필드 구분자를 콜론(:
)으로 설정. 이 구분자를 기준으로 문자열 분할read -r name file
:read
명령은 입력된 값을 읽어들여 변수를 할당함.-r
옵션은 백슬래시(\
)를 특수 문자로 해석하지 않도록 함.<<< "$stack"
: 여기서<<<
는 Here String을 나타내며, 문자열의 내용을 표준 입력으로 전달함."$stack"
변수의 값을read
명령으로 전달함.
‣ 스크립트 실행
스크립트에 실행 권한 부여
chmod u+x deploy-stack.sh
스크립트 실행
bash deploy-stack.sh