I got this error "ModuleNotFoundError: No module named 'project'" when I contarize my web app. I used Django with daphne. it's my settings here: Dockerfile: FROM python:3.11-slim RUN apt-get update && apt-get install -y \ libpq-dev gcc curl \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /backend COPY requirements.txt /backend/ RUN pip install --no-cache-dir -r /backend/requirements.txt COPY . /backend/ WORKDIR /backend/project RUN python /backend/project/manage.py collectstatic --noinput RUN chown -R www-data:www-data /backend USER www-data ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONPATH="." ENV DJANGO_SETTINGS_MODULE=project.settings EXPOSE 8000 #CMD ["python","manage.py","runserver"] CMD ["daphne", "-b", "0.0.0.0", "-p", "8000", "project.asgi:application"] docker-compose: version: '3.9' services: web: build: context: . dockerfile: dockerfile container_name: c_django working_dir: /backend/project command: > daphne -b 0.0.0.0 -p 8000 project.asgi:application # python manage.py runserver volumes: - ./backend:/backend:delegated - ./backend/project/images:/backend/project/images - ./backend/project/staticfiles:/backend/project/staticfiles ports: - 8000:8000 environment: ALLOWED_HOSTS: '*' DEBUG: 'True' SECRET_KEY: 1vbl8yp&1*c6)+-o!9r_)_1oo$x*-en^mu0#c*wcojb1j#-=20 PYTHONPATH: "." DJANGO_SETTINGS_MODULE: "project.settings" DATABASE_NAME: fitness DATABASE_USER: postgres DATABASE_PASSWORD: 123456 DATABASE_HOST: db DATABASE_PORT: 5432 REDIS_URL: redis://redis:6379/1 depends_on: - db - redis networks: - frontend_backend db: image: postgres:15 container_name: c_postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: 123456 POSTGRES_DB: fitness ports: - 5432:5432 volumes: - postgres_data:/var/lib/postgresql/data networks: - frontend_backend frontend: build: context: ../frontend dockerfile: Dockerfile container_name: c_frontend volumes: - ../frontend/dist:/usr/share/nginx/html - ../frontend/nginx/nginx.conf:/etc/nginx/nginx.conf ports: - 8080:80 depends_on: - web networks: - frontend_backend nginx: image: nginx:latest container_name: c_nginx volumes: - ../frontend/nginx/nginx.conf:/etc/nginx/nginx.conf - ../frontend/dist:/usr/share/nginx/html - ./backend/project/images:/usr/share/nginx/html/images - ./backend/project/static:/usr/share/nginx/html/static ports: - 80:80 depends_on: - web - frontend networks: - frontend_backend redis: image: redis:alpine container_name: c_redis ports: - 6379:6379 networks: - frontend_backend volumes: postgres_data: networks: frontend_backend: driver: bridge And my directory: Directory: C:\Users\emirh\OneDrive\Belgeler\GitHub\drf-vue3-gym-managament\backend\project Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 26.06.2024 04:18 API d----- 27.05.2024 01:51 ckeditor d----- 23.06.2024 20:42 fixtures d----- 31.05.2024 04:44 images d----- 5.12.2024 22:34 project d----- 11.01.2025 23:49 staticfiles -a---- 29.04.2024 00:53 685 manage.py Directory: C:\Users\emirh\OneDrive\Belgeler\GitHub\drf-vue3-gym-managament\backend\project\project Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2.02.2025 21:56 __pycache__ -a---- 15.01.2025 15:41 624 asgi.py -a---- 2.02.2025 23:44 8259 settings.py -a---- 3.12.2024 01:29 174 urls.py -a---- 29.04.2024 00:53 407 wsgi.py -a---- 29.04.2024 00:53 0 __init__.py And this is error: c_postgres | c_postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization c_postgres | c_postgres | c_postgres | 2025-02-02 20:57:08.744 UTC [1] LOG: starting PostgreSQL 15.10 (Debian 15.10-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit c_postgres | 2025-02-02 20:57:08.814 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 c_postgres | 2025-02-02 20:57:08.814 UTC [1] LOG: listening on IPv6 address "::", port 5432 c_postgres | 2025-02-02 20:57:08.818 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" c_postgres | 2025-02-02 20:57:08.824 UTC [29] LOG: database system was shut down at 2025-02-02 20:53:24 UTC c_postgres | 2025-02-02 20:57:08.838 UTC [1] LOG: database system is ready to accept connections c_frontend | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration c_frontend | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ c_django | Traceback (most recent call last): c_django | File "/usr/local/bin/daphne", line 8, in <module> c_frontend | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh c_django | sys.exit(CommandLineInterface.entrypoint()) c_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ c_django | File "/usr/local/lib/python3.11/site-packages/daphne/cli.py", line 171, in entrypoint c_django | cls().run(sys.argv[1:]) c_django | File "/usr/local/lib/python3.11/site-packages/daphne/cli.py", line 233, in run c_django | application = import_by_path(args.application) c_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ c_django | File "/usr/local/lib/python3.11/site-packages/daphne/utils.py", line 17, in import_by_path c_django | target = importlib.import_module(module_path) c_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ c_django | File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module c_django | return _bootstrap._gcd_import(name[level:], package, level) c_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ c_django | File "<frozen importlib._bootstrap>", line 1204, in _gcd_import c_django | File "<frozen importlib._bootstrap>", line 1176, in _find_and_load c_django | File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked c_django | File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed c_django | File "<frozen importlib._bootstrap>", line 1204, in _gcd_import c_django | File "<frozen importlib._bootstrap>", line 1176, in _find_and_load c_django | File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked c_django | ModuleNotFoundError: No module named 'project' c_frontend | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf c_frontend | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf c_frontend | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh c_frontend | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh c_frontend | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh c_frontend | /docker-entrypoint.sh: Configuration complete; ready for start up c_nginx | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration c_nginx | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ c_nginx | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh c_nginx | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf c_nginx | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf c_nginx | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh c_nginx | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh c_nginx | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh c_nginx | /docker-entrypoint.sh: Configuration complete; ready for start up c_django exited with code 1 c_nginx | 2025/02/02 20:57:09 [emerg] 1#1: host not found in upstream "web" in /etc/nginx/nginx.conf:23 c_nginx | nginx: [emerg] host not found in upstream "web" in /etc/nginx/nginx.conf:23 c_nginx exited with code 1 c_postgres | 2025-02-02 21:02:08.942 UTC [27] LOG: checkpoint starting: time c_postgres | 2025-02-02 21:02:08.963 UTC [27] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.005 s, sync=0.003 s, , sync=0.003 s, total=0.022 s; sync files=2, longest=0.002 s, average=0.002 s; distance=0 kB, estimate=0 kB asgi.py: import os import django from django.core.asgi import get_asgi_application from channels.routing import ProtocolTypeRouter, URLRouter from channels.auth import AuthMiddlewareStack from channels.security.websocket import AllowedHostsOriginValidator import API.routing os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') django.setup() application = ProtocolTypeRouter({ "http": get_asgi_application(), "websocket": AllowedHostsOriginValidator( AuthMiddlewareStack( URLRouter( API.routing.websocket_urlpatterns ) ), ), }) How can I solve this problem ? Where did I make a mistake here ? I searched it but did not find anything or I couldn't solve it. I am beginner in docker. Thanks. Continue reading...