Почему рекомендуется использовать `go build` вместо` go run` при запуске приложения Go в рабочей среде? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть Dockerfile, который я использовал для компиляции приложения Go, используя go build. Я исследовал и действительно go build рекомендуется для производства.

Однако я не могу найти правильный ответ относительно того, почему.

Я понимаю, go run создает временный файл, который очищает завершение приложения. Но если я использую Docker, почему плохо использовать go run вместо go build?

1 Ответ

5 голосов
/ 06 апреля 2020

Несколько причин:

  • Приложение Go не требует набора инструментов Go, так же как приложение C не требует gcc. Если вы используете go build, вы можете просто развернуть двоичный файл; если вы используете go run, вам необходимо установить набор инструментов.
  • go run компилирует приложение без необходимости каждый раз, когда оно запускается, увеличивая время запуска.
  • go run перенаправляет приложение в новый процесс, что делает ненужным усложнение управления процессами за счет скрытия идентификаторов PID и состояний выхода.
  • go run потенциально может неожиданно воспринимать изменения кода, когда вы только собираетесь запустить приложение. Использование go build только в том случае, если вам нужен двоичный файл fre sh, позволяет каждый раз повторять один и тот же согласованный двоичный файл без неожиданных изменений.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...