Сборка pipenv с файлом требований на Docker - PullRequest
0 голосов
/ 13 декабря 2018

У меня большие проблемы с сборкой док-версии приложения фляги.Сначала я не могу установить какие-либо зависимости из файла needs.txt, который находится внутри самого контейнера.Вот структура папок:

.
├── app
│   ├── ASRModule.py
│   ├── auth.py
│   ├── config
│   ├── files
│   ├── index.py
│   ├── __init__.py
│   ├── Interval.py
│   ├── MySQLDBHandler.py
│   ├── __pycache__
│   ├── SIPCall.py
│   ├── SOAPClient.py
│   ├── static
│   ├── stats.py
│   ├── templates
│   ├── TrunkOccupation.py
│   └── TrunkTraffic.py
├── Dockerfile
├── instance
└── requirements.txt

И мой Dockerfile, на котором я хочу построить контейнер:

FROM python:3.5.2-alpine

COPY . /flask
WORKDIR /flask

RUN pip install --upgrade pip
RUN pip install pipenv

CMD ["pipenv", "shell", "testshell"]
CMD ["pipenv","install", "-r ./requirements.txt"]

Насколько я понимаю, после завершенной сборки у меня должна быть такая же структура папок, кромеодин вышеупомянутый каталог с именем flask , в котором будут храниться все вышеупомянутые файлы и каталоги.У меня также должен быть файл virtualenv под названием testshell , в который должны быть установлены все зависимости из needs.txt.И до сих пор все работает шелковисто-гладко-отлично.К моему разочарованию, однако, после того, как я пытаюсь запустить этот контейнер, я вижу правильно скомпилированную виртуальную среду и такую ​​ошибку:

Файл требований не существует.Убедитесь, что файл существует в каталоге вашего проекта или вы указали правильный путь.

Я испробовал различные пути для файла требований, но ничего не помогло.Буду признателен за любую помощь, которая укажет мне, где я делаю ошибку.

1 Ответ

0 голосов
/ 13 декабря 2018

Ошибка довольно проста, но ее трудно заметить с помощью сообщения об ошибке bad - в нем не указано , какой файл он пытается загрузить.Файл пытается загрузить '/flask/ ./requirements.txt', т.е. requirements.txt в подкаталоге с именем пробел . - ср с ошибкойсообщение от pip:

% "pip" "install" "-r ./requirements.txt"
Could not open requirements file: 
[Errno 2] No such file or directory: ' ./requirements.txt'

Исправление: либо удаляет пробел, либо правильно разделяет аргументы:

CMD ["pipenv", "install", "-r./requirements.txt"]

или

CMD ["pipenv", "install", "-r", "./requirements.txt"]

оба должны работать.


Я полагаю, что вы будете жаловаться на сообщение об ошибке в средство отслеживания проблем pipenv .

...