Форум программистов, компьютерный форум, киберфорум
Docker, Kubernetes
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238

Docker Почему "No module named 'project'?"

09.08.2024, 02:25. Показов 1975. Ответов 20

Студворк — интернет-сервис помощи студентам
День добрый!


Задача.
Решил на одном IP развернуть два проекта.
Каждый из них имеет независимый CMS Django.
Общая база данных.
Работа с Nginx под разными портами.
  • При 'docker-compose up -d' база данных и nginx работает, проекты упавшие судя по результату команды 'docker ps'.
  • Судя по логам, оба проекта имеют:
  • общее - "ModuleNotFoundError: No module named 'project'"
  • один из них - " django.db.migrations.exceptions.Inconsis tentMigrationHistory: Migration admin.0001_initial is applied before its dependency account.0001_initial on database 'default'."
На эти две ошибки не могу ответить и гугл тоже.
Может загляните в настройки ниже.
Docker-compose
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
version: "3.3"
services:
  db:
    container_name: sagirov_postgres
    image: postgres:15
    volumes:
      - db_data:/var/lib/postgresql/data
    env_file: .env
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "${POSTGRES_USER} -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5 # That is  five restarts
    ports:
      - "5432:5432"
  web1:
    container_name: sagirov_django
    # image: first_image:latest
    build:
      dockerfile: Dockerfile
      context: sagirov
    volumes:
      - db_data:/www/backup/data/sagirov
      - .:/www
      - static_volume:/www/spacex/static/
    working_dir: /www
    command:
      - bash
      - -c
      - |
        python3 sagirov/manage.py collectstatic --noinput --clear
        python3 sagirov/manage.py makemigrations
        python3 sagirov/manage.py migrate
        gunicorn -b 0.0.0.0:8001 project.wsgi:application
    ports:
      - "8001:8001"
    depends_on:
      - db
  web2:
    container_name: account_django
    # image: first_image:latest
    build:
      dockerfile: Dockerfile
      context: app_account
    volumes:
      - db_data2:/www/backup/data/account
      - .:/www
      - static_volume2:/www/account/static/
    working_dir: /www
    command:
      - bash
      - -c
      - |
        python3 app_account/manage.py collectstatic --noinput --clear
        python3 app_account/manage.py makemigrations
        python3 app_account/manage.py migrate
        gunicorn -b 0.0.0.0:8002 project.wsgi:application
    ports:
      - "8002:8002"
    depends_on:
      - db
      - web1
  nginx:
    container_name: app_nginx
 
    build:
      context: ./docker/nginx
        build:
      context: ./docker/nginx
      dockerfile: Dockerfile
    working_dir: /etc/nginx/
    depends_on:
      - web1
      - web2
    volumes:
      - db_data:/www/spacex/buckup
      - static_volume:/www/spacex/static/
      - db_data2:/www/account/buckup
      - static_volume2:/www/account/static/
    restart: on-failure
    ports:
      - '80:80'
 
volumes:
  db_data:
    external: true
  static_volume:
    external: true
  db_data2:
    external: true
  static_volume2:
    external: true


project1/Dockerfile с одной ошибкой
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
RUN apt update && apt install -y python3-venv
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV DJ_SECRET_KEY2= <DJANGO-sekret-key>
ENV DJANGO_SETTINGS_MODULE=project.settings
ENV POSTGRES_DB= < dadabese-name>
ENV POSTGRES_USER= <login-name >
ENV POSTGRES_PASSWORD=< password >
ENV POSTGRES_HOST=db
ENV POSTGRES_PORT=5432
ENV NGINX_EXTERNAL_PORT=80
ENV VERSION= <number>
RUN python3 -m venv /opt/venv && mkdir -p /www && mkdir -p /www/account && \
    mkdir -p /www/account/backend && mkdir -p /www/account && \
    mkdir -p /www/account/contribute && mkdir -p /www/account/contribute/vews && \
    mkdir -p /www/account/contribute/vews_changes_profile && \
    mkdir -p /www/account/contribute/vews_new_users && mkdir -p /www/migrations && \
    mkdir -p /www/routers && mkdir -p /www/account && mkdir -p /www/account/static && \
    mkdir -p /www/account/static/account && \
    mkdir -p /www/account/static/account/css && \
    mkdir -p /www/account/static/account/javascripts && \
    mkdir -p /www/account/templates && mkdir -p /www/account/templates/email && \
    mkdir -p /www/account/templates/layout && \
    mkdir -p /www/account/templates/users && mkdir -p /www/project
 
WORKDIR /www
COPY requirements.txt .
RUN pip install --upgrade pip && pip install -r requirements.txt
RUN pip install gunicorn
COPY . .
CMD ["gunicorn", "-b", "0.0.0.0:8002", "projects.wsgi:application"]


project2/Dockerfile с 2-мя ошибками
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
FROM python:3
RUN apt update && apt install -y python3-venv
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV DJ_SECRET_KEY= <DJANGO-sekret-key>
ENV DJANGO_SETTINGS_MODULE=project.settings
ENV POSTGRES_DB= < dadabese-name>
ENV POSTGRES_USER= <login-name >
ENV POSTGRES_PASSWORD=< password >
ENV POSTGRES_HOST=db
ENV POSTGRES_PORT=5432
ENV NGINX_EXTERNAL_PORT=80
ENV VERSION= <number>
RUN apt update && apt install -y git
RUN python3 -m venv /opt/venv && mkdir -p /www && \
    mkdir -p /www/backup && mkdir -p /www/backup/data && \
    mkdir -p /www/spacex && mkdir -p /www/spacex/static && \
    mkdir -p /www/spacex/migrations && \
    mkdir -p /www/spacex/templates && \
    mkdir -p /www/project
WORKDIR /www
COPY *.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN pip install gunicorn
COPY . .
 
CMD ["gunicorn", "-b", "0.0.0.0:8001", "project.wsgi:application"]


Nginx
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
upstream web1 {
        server web1:8001;
}
upstream web2 {
        server web2:8002;
}
 
http {
        server {
                listen 80
                location / {
                        include /etc/nginx/conf.d/proxy_params;
                        proxy_pass http://web1;
                }
 
                location /login/ {
                        include /etc/nginx/conf.d/proxy_params;
                        proxy_pass http://web2;
                }
 
                location /(account|spacex)/static/ {
                        proxy_pass (app_account|sagirov)/(account|spacex)/static/;
                }
        }
}
Dockerfile (nginx)
Code
1
2
3
4
5
6
FROM nginx:latest
RUN rm /etc/nginx/conf.d/default.conf
RUN mkdir /etc/spacex && mkdir /etc/spacex/static && \
mkdir /etc/spacex/buckup && mkdir /etc/spacex/template
COPY nginx.conf /etc/nginx/conf.d
COPY proxy_params /etc/nginx/conf.d/proxy_params
Образ дерева.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root
  |Docker-compose.yml
  | docker
  |    |*|nginx.conf
  |    |*|Dockerfile
  |    |*|proxy_params
  |project1
  |    |Dockerfile
  |    |project
  |project2
  |    |Dockerfile
  |    |project
  |
  |
  |
В project-ях имеется __init__.py
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2024, 02:25
Ответы с готовыми решениями:

В чем ошибка? выводит No module named 'project'
Помогите плиз при попытке открытия ссылки из index.html выводит no module named 'project' и ссылается на строку&lt;form action=&quot;{%...

Ошибка: Module 'RecFrm' links to module 'Main' which cannot be found in the current project
Есть три формы Main, Rec и RecFrm. Main является главной формой. В Rec uses Main; RecFrm в свою очередь TRecFrm = class(TRec); и ...

PyQt5 Error while finding module specification for 'PyQt5.uic.pyuic' (ModuleNotFoundError: No module named 'PyQt
В общем поставил pyqt5 и python3.7 пишу в консоль python -m PyQt5.uic.pyuic Выдает ошибку Error while finding module specification for...

20
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 238
12.08.2024, 10:49  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Usaga Посмотреть сообщение
раз такая настройка используется в compose
Когда начинаешь понимать ,что как работает, тогда может быть очевидно. А когда с нуля, это просто набор символов. ))
Цитата Сообщение от Usaga Посмотреть сообщение
А поверх этого ещё и дополнительных знаний накинули сверху)
Да, спасибо )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2024, 10:49
Помогаю со студенческими работами здесь

При запуске скрипта PyCharm выдаёт "No module named Module"
Здравствуйте, товарищи формучане! Вчера начал изучать великолепный язык под названием Python и столкнулся с одной странностью PyCharm: есть...

No module named
Всем привет! Только начал изучать Python как сразу столкнулся с проблемой. Через pip install vk_api установил соответствующий пакет. Зашёл...

No module named 'telepot'
Установил модуль telepot : sudo pip install telepot sudo pip install telepot --upgrade Написал программу, в первой строке...

ImportError: No module named 'six'
Добрый день. Изучаю новую библиотеку питона Matplotlib. Во время компиляции кода from pylab import * plot(range(1, 20), ,...

No module named 'bootstrap4'
пытаюсь освоить Django (по Эрику Мэтизу). Нужно использовать bootstrap. Из виртуальной среды пишу (ll_env)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru