Cloud & SERVER/Docker
[Docker] Flask web 도커로 빌드하기
sillon
2025. 6. 9. 22:18
728x90
반응형
1. 프로젝트 구조 및 준비
보이스피싱 탐지용 AASIST 모델을 웹에서 실행하기 위해, 다음과 같은 구조로 프로젝트를 구성
project/
├── aasist/ # AASIST 모델 소스코드 (github에서 복제)
├── app.py # Flask 웹 애플리케이션 메인 파일
├── templates/ # HTML 템플릿 파일 (index.html, result.html 등)
├── static/ # (필요 시 정적 자원 저장 폴더)
├── uploads/ # 사용자 업로드 음성 파일 저장 경로
├── Dockerfile
├── requirements.txt
aasist/ 디렉토리는 clovaai/aasist 저장소를 클론하거나 필요한 파일을 수동으로 구성하여 채웁니다.
2. requirements.txt 작성
Flask 서버와 모델 실행에 필요한 Python 패키지를 명시
torch>=1.6.0
torchcontrib
numpy
soundfile
tensorboard>=2.0.0
flask
PyTorch 버전은 사용하는 GPU 및 CUDA 환경에 맞게 수정 가능함
3. Dockerfile 작성
Docker를 사용하여 Flask 서버를 GPU 환경에서 실행할 수 있도록 설정한다
FROM pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime
WORKDIR ./
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# 전체 aasist 폴더 복사 (모델, app.py, weights 포함)
COPY aasist ./aasist
# Flask 실행 (Flask가 모델 로딩 포함)
CMD ["python", "aasist/app.py"]
4. Docker 이미지 빌드 및 실행
터미널에서 아래 명령어를 실행하여 Docker 이미지 생성 및 컨테이너 실행:
# 이미지 빌드
docker build -t aasist-image .
# GPU 지원 컨테이너 실행
docker run --gpus all -it --rm -p 5000:5000 aasist-image
5. 웹 애플리케이션 접속
컨테이너가 실행되면, 로컬에서 실행하는 경우에는 해당 링크로 들어가서 빌드 확인 가능
http://localhost:5000
728x90
반응형