В вашем вопросе есть несколько заблуждений, которые стоит пересмотреть, чтобы извлечь максимум пользы из Docker.
чтобы увидеть мои изменения [разработки], я должен перестроить образ Docker
Один из популярных подходов к разработке - использовать специальный сценарий запуска оболочки, который выполняет команду docker run
(или docker-compose up
), которая создает тома, сопоставленные с диском вашей машины разработки. Это позволяет вам вносить изменения в ваш локальный компьютер, и они будут немедленно отражены в вашем работающем контейнере.
Таким образом, вам не нужно перестраивать машину, и вам даже не нужно ее перезагружать. Конечно, когда вы переходите в UAT или готовитесь, вам придется перестраивать свой образ, и эти тома не будут сопоставлены с хостом.
перезагружает пакеты Go каждый раз
Похоже, у вас возникли проблемы с кэшированием слоя Docker. При правильном использовании ваш Dockerfile
должен позволить вам очень быстро перестроить ваш образ из предыдущих сборок, если:
- связанные файлы в проекте были изменены, или
- строка или предыдущая строка в
Dockerfile
была изменена
Возможно, стоит обратиться в отдельном потоке.