개인프로젝트/자동화

게더타운 출석체크 자동화-Docker 컨테이너화 시키기

해아's 2024. 4. 26. 12:32

서버 분리 및 도커 컨테이너화

기존에는 하나의 서버에서 모든 업무를 처리했지만, 효율적인 운영을 위해 서버를 분리하고 도커 컨테이너화를 진행했습니다. 이를 통해 라즈베리 파이에 설치된 도커를 활용하여 각각의 서버를 컨테이너 형태로 운영하게 되었습니다.

변경된 구성:

  1. Flask 서버 컨테이너: 학생명단 텍스트 파일 생성 및 관리를 위한 Flask 서버를 컨테이너로 운영합니다. 이 서버는 WebSocket을 통해 게더타운에서 가져온 학생 명단을 처리하고 필요한 작업을 수행합니다.
  2. Node.js 서버 컨테이너: 게더타운 접속자 명단을 가져오는 기능을 수행하는 Node.js 서버를 컨테이너로 운영합니다. 이 서버는 게더타운 API를 활용하여 학생들의 접속 정보를 수집하고 필요한 데이터를 전달합니다.

이와 같이 서버를 분리하고 각각을 도커 컨테이너로 운영함으로써 시스템을 보다 모듈화하고 유연하게 운영할 수 있게 되었습니다.

python flask dockerfile

FROM python:3.12.1-slim
ENV LANG=ko_KR.UTF-8
ENV LC_ALL=ko_KR.UTF-8
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn","app:app","-c","gunicorn.conf.py"]

node.js dockerfile

FROM node:20
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "run","save-chat-log"]
728x90
반응형