Как можно эффективно использовать Docker для разработки? - PullRequest
0 голосов
/ 05 мая 2018

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

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

Значит ли это, что Docker лучше подходит для развертывания, чем для разработки?

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

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

чтобы увидеть мои изменения [разработки], я должен перестроить образ Docker

Один из популярных подходов к разработке - использовать специальный сценарий запуска оболочки, который выполняет команду docker run (или docker-compose up), которая создает тома, сопоставленные с диском вашей машины разработки. Это позволяет вам вносить изменения в ваш локальный компьютер, и они будут немедленно отражены в вашем работающем контейнере.

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

перезагружает пакеты Go каждый раз

Похоже, у вас возникли проблемы с кэшированием слоя Docker. При правильном использовании ваш Dockerfile должен позволить вам очень быстро перестроить ваш образ из предыдущих сборок, если:

  • связанные файлы в проекте были изменены, или
  • строка или предыдущая строка в Dockerfile была изменена

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

0 голосов
/ 05 мая 2018

Ну, это зависит от того, для какой проблемы вы используете Docker.

Docker - отличный инструмент для обеспечения виртуализации среды и распространения образа. Это помогает в процессе развертывания и непрерывной интеграции.

Итак, это может быть полезно при разработке, если вы работаете в команде и вам нужна такая же среда для работы.

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