olrlobt
[Error] AWS tensorflow==2.11.*, tensorflow-intel==2.11.* 의존성 설치 에러 본문
Fast API를 EC2에 배포하려 Docker 이미지를 빌드하는 도중 아래와 같은 에러가 발생했다.
수정전 내가 작성한 Dockerfile은 아래와 같다.
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
TensorFlow는 Python 3.6~3.9에서 지원하기 때문에, 파이썬을 다운그레이드해 주었고, Fast API 프로젝트의 의존성을 requirements.txt로 작성하여 Dockerfile에서 pip install을 해 주는 과정이었다.
이때 requirements.txt 안에 의존성에는 tensorflow 관련 의존성들의 버전이 설정되어 있었는데, 이 부분을 설치해 주는 과정에서 버전에 따른 오류가 발생했다.
여러 가지 해결 방법을 검색해 보고 적용한 결과,
Thensorflow를 Dockerfile 내에서 환경과 버전에 맞게 직접 설치를 해주는 방법으로 해결하였다.
1. Tensorflow 공식 사이트에서 사용 버전과 환경에 맞는 Pacakage Location을 찾는다.
https://www.tensorflow.org/install/pip#software_requirements
나는 Python 3.9 버전의 CPU-only를 사용했다.
2. Dockerfile 수정
FROM python:3.9
WORKDIR /app
# 필요한 경우 wget 설치
RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*
# TensorFlow .whl 파일 다운로드 및 설치
RUN wget https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
RUN pip install --no-cache-dir tensorflow_cpu-2.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
# 필요한 경우 나머지 의존성 설치
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
3. requirements.txt 안에 의존성에는 tensorflow 관련 의존성 삭제
직접 다운로드를 해 주었기 때문에 별도로 tensorflow의 의존성을 설치할 필요 없다.
'Error' 카테고리의 다른 글
Comments