업무를 하다보면 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 를 통해 실행하면 된다.
'Python' 카테고리의 다른 글
[python] AWS lambda layer로 필요 라이브러리 추가 (0) | 2022.03.12 |
---|---|
[Python] Multiprocessing pool를 이용하여 batch job 처리 (0) | 2021.12.21 |
Comment