Я получаю сообщение об ошибке моего модуля с именем "companyname" (поддельное имя, чтобы не раскрывать этот проект), несмотря на тот факт, что он находится в папке с моим Dockerfile.
Вот мой Dockerfile:
FROM python:3.7
RUN apt-get update && apt-get upgrade -y && apt-get autoremove && apt-get autoclean
RUN apt-get install -y \
libffi-dev \
libssl-dev \
default-libmysqlclient-dev \
libxml2-dev \
libxslt-dev \
libjpeg-dev \
libfreetype6-dev \
zlib1g-dev \
net-tools \
vim
COPY * ./
RUN pip install -U pipenv
RUN pipenv install --system
EXPOSE 8000
STOPSIGNAL SIGINT
ENTRYPOINT ["python3.7", "manage.py"]
CMD ["runserver", "0.0.0.0:8000"]
Вот мой manage.py:
#!/usr/bin/env python
import os
import sys
import pymysql
pymysql.install_as_MySQLdb()
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "companyname.settings.dev")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
И еще есть файл, который находится ./companyname/settings/dev.py
в моем Dockerfile - так что якобы он должен существовать в моем образе Docker изкоманда копирования.
Однако, когда я запускаю:
docker run <image hash>
, я получаю:
ModuleNotFoundError: No module named 'companyname'
Почему не удается manage.py найти мой модуль? Должна соблюдаться та же структура каталогов, правильно?