반응형
반응형
운영 서버에서 컨테이너 재시작이 불가능하여 개발에 필요한 라이브러리를 호스트에서 직접 설치해야 하는 상황이 생겼다. 이 글에서는 쉘 스크립트에 호스트의 pip.conf 파일을 각 컨테이너로 복사한 후 (외부 망으로 나갈 수 없어서 내부 망의 넥서스에서 설치하기 위한 작업), 필요한 패키지를 설치하는 과정을 자동화하는 방법을 알아본다.
PACKAGES=("zeep" "DBUtils") # 공백으로 구분하여 추가
PACKAGES_STRING="${PACKAGES[@]}"
CONTAINERS=("airflow-airflow-worker-1" "airflow-airflow-worker-2" "airflow-airflow-worker-3" "airflow-airflow-Webserver-1" "airflow-airflow-scheduler-1")
for CONTAINER in "${CONTAINERS[@]}"; do
echo "컨테이너 '$CONTAINER' 작업 시작"
# 호스트의 pip.conf 파일을 컨테이너로 복사 # 외부 망으로 나갈 수 없어서 내부 망의 넥서스에서 설치하기 위한 작업으로 선택적으로 사용
docker cp "$HOST_PIP_CONF" "$CONTAINER":"$CONTAINER_PIP_CONF"
if [ $? -ne 0 ]; then
echo "컨테이너 '$CONTAINER' 에 pip.conf 복사 실패"
continue
fi
# 각 컨테이너 내부에 라이브러리 설치
docker exec "$CONTAINER" pip install $PACKAGES_STRING
if [ $? -ne 0 ]; then
echo "컨테이너 '$CONTAINER' 에 라이브러리 설치 실패"
continue
fi
echo "컨테이너 '$CONTAINER'에 대한 작업 완료."
echo "--------------------------------------------------"
done
echo "모든 작업이 완료되었습니다!"
업무적으로 재시작이 불가능한 도커 컨테이너에 라이브러리를 추가하는 쉘 스크립트를 작성하여 자동화할 수 있다.
반응형
'Docker & Kubernetes' 카테고리의 다른 글
도커 이미지 저장 구조 (0) | 2025.01.12 |
---|---|
도커 이미지 빌드하기 (Apache Airflow) (0) | 2024.11.03 |
Docker 이미지 업데이트 자동화: Shell Script와 Docker Compose 활용 (0) | 2024.08.25 |
Docker Compose의 구조 (0) | 2024.08.25 |
Docker Compose에서 logging 설정을 활용한 로그 관리 (0) | 2024.08.24 |