Я пытаюсь интегрировать docker в свой рабочий процесс django, и у меня есть все настроенное, за исключением одной действительно раздражающей проблемы. Если я хочу добавить зависимости к моему файлу requirements.txt, мне просто нужно перестроить весь образ контейнера для этих зависимостей.Что такое хороший способ добавления зависимостей python к контейнеру Docker?
Например, я выполнил пример docker-compose для django here. файл YAML устанавливается следующим образом:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
и файл Docker, используемый для создания веб-контейнер устанавливается следующим образом:
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
Итак, когда изображение строится для этого контейнера требованиям. txt устанавливается с любыми зависимостями изначально в нем.
Если я использую это как свою среду разработки, становится очень сложно добавить любые новые зависимости к этому файлу требований.txt, потому что мне придется перестроить контейнер для изменений в файле требований. Txt.
Есть ли какая-то лучшая практика в сообществе джанго, чтобы справиться с этим? Если нет, я бы сказал, что докер выглядит очень красиво для упаковки приложения после его завершения, но не очень хорошо используется в качестве среды разработки. Это займет много времени, чтобы восстановить контейнер, поэтому много времени тратится впустую.
Я ценю любое понимание. Благодарю.
Да, хорошая идея. Я мог бы просто установить его зависимости при запуске контейнера. Я собираюсь попробовать. –
@SpencerCooley В зависимости от количества зависимостей, которые у вас есть, вы можете захотеть, чтобы в контейнере были те, которые, как вы знаете, у вас всегда есть, а затем просто добавьте возможность добавлять больше. Вы не хотите, чтобы контейнер заработал несколько минут. – 2rs2ts
true, поэтому базовое изображение будет иметь все основы, а сценарий запуска будет устанавливать зависимости, которые я использую во время процесса разработки, например, своего рода список временных зависимостей. Когда я готов все это вытащить, я могу просто переместиться над зависимостями, которые, как я решаю, будут постоянными в системе. Иногда я просто экспериментирую с библиотеками, которые я не использую. Это похоже на среду зависимостей dev. final_requirments.txt temp_requirements.txt –