Я использую Django 2 и Python 3.7. У меня есть следующая структура каталогов.
web
- Dockerfile
- manage.py
+ maps
- requirements.txt
+ static
+ tests
+ venv
"needs.txt" - это просто файл, который я сгенерировал, запустив "pip3 freeze> needs.txt". У меня есть приведенный ниже Dockerfile для моего Django контейнера ...
FROM python:3.7-slim
RUN apt-get update && apt-get install
RUN apt-get install -y libmariadb-dev-compat libmariadb-dev
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc \
&& rm -rf /var/lib/apt/lists/*
RUN python -m pip install --upgrade pip
RUN mkdir -p /app/
WORKDIR /app/
pip3 freeze > requirements.txt
COPY requirements.txt requirements.txt
RUN python -m pip install -r requirements.txt
COPY . /app/
Мне было интересно, есть ли способ построить мой контейнер так, чтобы он автоматически генерировал и копировал правильный файл needs.txt. Как вы можете догадаться, строка
pip3 freeze > requirements.txt
, которую я попытался включить выше, приводит к тому, что все это значение d ie при запуске "docker -compose build" с ошибкой
ERROR: Dockerfile parse error line 15: unknown instruction: PIP3