[python] Docker 기반으로 Batch성 업무를 간소화 하자

업무를 하다보면 batch성 작업을 여러 서버에서 해야 하는 일이 생긴다. 이 글에서는 python을 이용한 환경변수 읽어오기 기능으로 batch성 작업을 Docker image로 만들어서 여러 서버에서 쉽게 변수만 수정하는 방법을 설명 하려고 한다.

Dockerfile 작성

본 글은 python 3.7 기반의 이미지를 사용하여 작성되었다.

FROM python:3.7

COPY ./script /app/script

WORKDIR /app/script

RUN pip3 install -r requirements.txt

ENTRYPOINT ["python", "main.py"]

script 폴더에는 실행되여햐 할 파일과 lib를 설치 할 수 있는 requirements.txt가 들어 있다.

requirements.txt 추출 방법은 아래와 같다.

pip3 freeze > requirements.txt

빌드

아래 명령을 이용해 docker image를 생성한다.

docker build -f Dockerfile.yml -t script_test .

docker-compose 로 실행

version: '3.7'
services:
  dynamodb:
    image:  script_test
    container_name: script_test
    restart: always
    environment:
      "ip": "127.0.0.1"

환경변수에 변수들을 추가하여 batch성 작업을 쉽게 분할하여 실행 가능하도록 만들 수 있다.

마지막으로 docker-compose up -d 를 통해 실행하면 된다.