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
반응형