반응형
개요
오늘 일을 하다가 우연히 아이디어가 떠올라 불편한 로직을 변경했습니다. docker-compose명령어인 build와 push를 사용하여 행위를 명시적으로 표현할 수 있어. 쉘 스크립트에 비해 의도를 명확하게 했습니다.
# 변경 전
/bin/bash deploy.sh
# 변경 후
docker-compose build
docker-compose push
상세내용
로컬에서 약 40개의 dockerfile을 build하고 push 하는 간단한 쉘 스크립트가 있었습니다. 각 dockerfile이 위치한 경로가 있어 반복문으로 docker build를 수행하는 형태였습니다.
TARGETS="
dir1
dir2
dir3
"
for target in ${TARGETS}:
do
docker build -t IMAGE_NAME ${target}/dockerfile
done
쉘 스크립트 docker build명령어를 아래 docker compose로 변경했습니다. 쉘 스크립트와 비교해서 docker compose에서는 어떤 컨텍스트에서 docker build를 할 수 있는지 명확히 보입니다.
services:
service1:
image: 이미지이름
build:
context: ./
dockerfile: ./Dockerfile
service2:
image: 이미지이름
build:
context: ./
dockerfile: ./Dockerfile
그리고 dev, prd이미지를 구별하기 위해 docker-compose를 2개로 분리했습니다.
# 개발 build와 push
docker-compose -f dev.dockerfile build
docker-compose -f dev.dockerfile push
# 운영 build와 push
docker-compose -f prd.dockerfile build
docker-compose -f prd.dockerfile push
반응형
'회고모음' 카테고리의 다른 글
nginx ingress 존재 때문에 보안 취약점 받은 nginx pod (0) | 2022.12.27 |
---|---|
컨테이너 로그 수집기준 (0) | 2022.12.26 |
무한루프 걸리는 쿠버네티스 job 디버깅 과정 (0) | 2022.07.12 |
Loki API를 사용하면서 불편한점! (0) | 2022.06.28 |
6월 4주차 회고 (0) | 2022.06.26 |