Обновление кода в контейнере докеров

Я установил Docker-контейнер django и сделал его изображение, используя build, используя здесь учебник. В руководстве показано, как создать базовое приложение django, и монтируется приложение в "/code", которое, как я понимаю, содержится в томе данных.

Однако я хочу понять, как я смогу обновлять и разрабатывать этот код, а также отправлять/развертывать его. Поскольку, когда я делаю коммит, он не учитывает никаких изменений в коде, так как он является частью объема данных.

Можно ли как-нибудь сделать код django частью изображения или обновить изображение обновленным кодом?

Ответ 1

Если вы хотите обновить изображение, скажем, из-за изменений кода приложения, вы используете COPY во время сборки изображения, поэтому в Dockerfile вы делаете что-то вроде

COPY /you/code/on/the/host /var/www

Также см. Мой ответ о "томах" и создании изображений fooobar.com/questions/6021250/... чтобы выяснить, почему ваш код отсутствует в сборке

Ответ 2

На шаге 9 учебника вы устанавливаете том. Этот том свяжет ваш текущий каталог и каталог контейнера /code. Другими словами, они будут одинаковыми.

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

Перед развертыванием образа вам нужно будет создать второй файл для компоновки докеров. Этот файл удалит том, чтобы код оставался внутри контейнера и не изменился извне. Вы можете выполнить шаги, указанные в документации для документации докеров.