본문 바로가기
Docker & Kubernetes

호스트에서 직접 도커 컨테이너에 파이썬 라이브러리 설치하기

by 떡쇠 2024. 10. 27.
반응형
반응형

운영 서버에서 컨테이너 재시작이 불가능하여 개발에 필요한 라이브러리를 호스트에서 직접 설치해야 하는 상황이 생겼다. 이 글에서는 쉘 스크립트에 호스트의 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 "모든 작업이 완료되었습니다!"

 

 

 

업무적으로 재시작이 불가능한 도커 컨테이너에 라이브러리를 추가하는 쉘 스크립트를 작성하여 자동화할 수 있다.

반응형