Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ModuleNotFoundError: No module named 'app' fastapi docker

FROM python:3.8
WORKDIR /app 

COPY requirements.txt /
RUN pip install --requirement /requirements.txt

COPY ./app /app

EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host=0.0.0.0" , "--reload" , "--port", "8000"]

when i used

docker-compose up -d
ModuleNotFoundError: No module named 'app'

  • the folders in Fastapi framework:

  • fastapi

    • app

      -main.py

  •    language_detector.py
    
  • Dockerfile

  • docker-compose

like image 286
Ben cheikh Avatar asked Aug 28 '26 13:08

Ben cheikh


2 Answers

CMD ["uvicorn", "main:app", "--host=0.0.0.0" , "--reload" , "--port", "8000"]

Your work directory is /app and the main.py file is already there. So you don't need to call app.main module. Just call main.py script directly in CMD.

like image 121
Raisul Avatar answered Aug 30 '26 02:08

Raisul


Try creating the /app folder before

FROM python:3.8
RUN mkdir -p /app
WORKDIR /app 

COPY requirements.txt /
RUN pip install --requirement /requirements.txt

COPY ./app /app

EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host=0.0.0.0" , "--reload" , "--port", "8000"]

And launching it:

docker-compose up --build

like image 25
a.civit Avatar answered Aug 30 '26 03:08

a.civit