Вопрос по развертыванию кода (извлечение кода во время выполнения) - PullRequest
0 голосов
/ 17 января 2020

У меня вопрос по развертыванию кода.

Моя команда делала образ Docker для совместного использования нескольких приложений. Например, изображение Docker имеет зависимости только для нескольких приложений, и когда я запускаю контейнер из этого образа, я 'git клонирую' свой код, который я хочу развернуть из Github.

I Я думал, что это не правильный способ использовать Docker. Поэтому я спросил об этом и услышал, что «Да, это не очень хороший способ использовать Docker. А перед этим, Google по поводу« извлечения кода во время выполнения »». Но когда я гуглил об этом, результатов было недостаточно.

Поскольку моя команда использовала для развертывания многих приложений с помощью «git клон», даже если не используется Docker, я действительно хочу знать, почему извлечение кода при плохой работе.

"Почему вытащить код, когда время выполнения плохое? "

1 Ответ

1 голос
/ 17 января 2020

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

Docker выглядит так: изображение - это автономный объект, который содержит приложение, его язык выполнения, и все его зависимости. Вы можете просто docker run запустить его, и он запустится без необходимости извлекать код или связываться с удаленным сервером.

Недостатком этого является то, что вам нужно перестраивать образ всякий раз, когда вы меняете код. В любом случае это довольно обычная процедура для различных распространенных языковых сред (C, C ++, Java, Go, Rust, Javascript через Typescript или Webpack), и это шаг вашей системы непрерывной интеграции (автоматической сборки) можно сделать довольно просто. Обычной практикой является создание нового образа при каждом коммите в вашей системе исходного кода и развертывание только встроенного автономного образа.

Стоит также отметить, что Docker - это относительно новая технология, и нет Требование использовать его. Если у вас есть рабочий процесс, основанный на использовании такого инструмента, как Ansible или Chef, для развертывания языковой среды выполнения в производственных системах, используется интерпретированный язык, который не требует этапа сборки (Python, Ruby, обычный Javascript) и напрямую извлекает исходный код из системы управления версиями, вы можете использовать его, если он работает.

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