지난 시간에 인공지능에 지시해 만든 웹 크롤링 프로그램을 docker로 배포해 보자.
2024.12.27 - [코드리뷰/chatGPT(Python)코드] - 뉴스 기사 추출하는 코드 만들어 줄래? (Chatgpt / Claude)
장점은 이미지로 배포하고 실행할 때는 컨테이너에 올리기 때문에 호환성 문제와 독립된 환경을 가질 수 있다. 즉, 파이썬 설치하거나 selenium은 같은 패키지 등을 배포하는 작업 없이 docker 이미지에 다 포함시키면 된다.
단점은 docker를 어느정도 이해하고 있어야 한다. 명령어를 익히고 몇 가지 샘플을 만들어 보는 게 필요하다.
1. dockerfile 만들기
크롤링 소스와 같은 디렉토리에 dockerfile을 만든다.
# 베이스 이미지 설정
FROM python:3.10-slim
# 필요한 OS 패키지 설치
RUN apt-get update && apt-get install -y \
wget \
curl \
unzip \
chromium-driver \
&& apt-get clean
# 작업 디렉토리 설정
WORKDIR /app
# Python 의존성 파일 복사 및 설치
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 애플리케이션 소스 복사
COPY . .
# 포트 열기 (선택)
EXPOSE 5000
# 애플리케이션 실행 명령
CMD ["python", "news_s.py"]
2. requirements.txt 파일 작성
파이썬 크롤링에 사용할 패키지 목록을 작성한다. docker 이미지 생성 시 자동 설치한다. 버전을 명시하지 않으면 최신버전을 받아온다. numpy와 pandas는 버전이 맞지 않으면 에러가 난다. 호환 버전을 명시하는 게 좋다.
다음과 같이 만들어도 된다. pip freeze > requirements.txt
3. docker 이미지 만들기
docker build -t news-scraper:latest .
4. docer 이미지 확인
docker images
5. docker 실행하기
docker run --name news-scraper-container -v ${PWD}/output:/app/output news-scraper:latest
재실행하려면 docker start news-scraper-container
6. docker 컨테이너 확인
7. docker 로그 확인
[정상]
[에러]
8. docker 컨테이너 삭제
docker rm news-scraper-container
9. docker 이미지 삭제
(1) docker 이미지 id 찾기
(2) docker 이미지 삭제
docker rmi d3da5e1f8e0d
댓글