Как установить некоторые пакеты python в контейнер Docker

#python #django #docker

#python #django #docker

Вопрос:

Я использую «reportlab». Мне приходится устанавливать «pip install reportlab» каждый раз, когда я захожу в среду docker, я не хочу каждый раз устанавливать какое-либо решение.

Комментарии:

1. Добавьте RUN pip install reportlab в Dockerfile, или, если вы уже устанавливаете requirements.txt в Dockerfile, затем добавьте reportlab к нему.

2. В Docker есть официальное руководство по созданию и запуску пользовательских образов , которое является хорошей отправной точкой; оно даже ориентировано на Python, и это должно вам помочь. Прямая установка пакетов в запущенные контейнеры — не лучшая практика, поскольку вы, скорее всего, потеряете работу.

Ответ №1:

Вы можете настроить requirements.txt файл, а затем иметь что-то подобное в вашем Dockerfile :

 ADD requirements.txt /code/  # I've assumed code is where you keep your dev files
WORKDIR /code  # where to run docker commands
RUN pip install -r requirements.txt  # install the dependencies
  

Вы можете поместить не только reportlab , но и все другие зависимости вашего проекта в этот файл (это распространенный шаблон в проектах Python).

Кроме того, в зависимости от того, как вы запускаете свое приложение, вы хотите убедиться, что не удаляете контейнер при выходе из него.

Ответ №2:

Войдите в контейнер, установите все необходимые компоненты и создайте образ. Этот образ можно повторно использовать для создания новых контейнеров.

Фиксация Docker

https://docs.docker.com/engine/reference/commandline/commit/