Рубрики
Без рубрики

Как вы можете сделать постоянную доставку с Vue, Docker и Azure

Несколько недель назад в NG-Conf я объявил о запуске VSCodeCANDOTHAT.com – проект, на котором я работал с Sarah Drasner, чтобы централизовать все мои любимые советы по сравнению с кодом VS в коллекцию коротких, тихих видеоклипов. Это как сайт, полный GIFS, кроме без 600

Несколько недель назад на NG-CONF Я объявил о запуске vscodecAntothat.com – проект, на котором я работал с Сара Драснер Чтобы централизовать все мои любимые советы против кода в коллекцию коротких тихих видеоклипов. Это похоже на сайт, полный GIFS, за исключением без размещения полезной нагрузки 600 мегабайт и разбившейся вкладки браузера.

Сара разработала и построила сайт с использованием Vue. Я собрал видеоклипы с чрезмерными ссылками мопса.

Сара и я оба работаем над командой Azure, поэтому это был хороший шанс для нас использовать наши собственные инструменты здесь, на Microsoft работать с реальным приложением. В этой статье я собираюсь сломать, как мы выполняем постоянную доставку с vscodecAntothat.com, и как вы можете сделать это самостоятельно, используя те же инструменты, которые мы используем.

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

Непрерывный что-то или другое

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

Для наших целей «непрерывная доставка» означает, что процесс построения и развертывания сайта полностью автоматизирован. Вот как это выглядит в реальной жизни:

  • Разработчик проверяет код в главной ветви GitHub
  • Сервер сборки вытягивает код из GitHub
  • Сервер сборки запускает сборку (сценарий NPM)
  • Сервер сборки создает контейнер докеров
  • Сервер сборки Pushes Docker Container в реестр
  • Берк находит источник брокколи в своем кабинете
  • Веб-сайт тянет в обновленном контейнере

Получил все это? В принципе, мы собираемся автоматизировать все, что вы обычно делаете в качестве разработчика, чтобы проверить код в GitHub, это все, о чем вам нужно беспокоиться. И Господь знает, что это достаточно жестко, как это Отказ

Впервые в моих ~ 4 года программирования и используя GIT, я правильно сделал Git Rabase – InterQuictive правильно, без необходимости вытирать, Stask или Force Runing вещи. #Жизненные цели

Хорошо, давайте начнем в начале. Первое, что нам нужно сделать, это посмотреть на приложение, чтобы увидеть, как он работает. И как это работает: «в доке, вы все».

Бег Vue на Docker

vscodecAntothat.com – это полноценное управление. Это все HTML, JavaScript и CSS в вашем браузере. Что бы это дела, все, что мы хотим сделать, это служить вверх index.html Страница от Dist папка. Мы используем веб-сервер Nginx.

Когда вы просто обслуживаете статические активы, DockerFile очень прост …

FROM nginx
WORKDIR /app
# Copy in the static build assets
COPY dist/ /app/
# Copy in the nginx config file
COPY misc/nginx.conf /etc/nginx/nginx.conf
# All files are in, start the web server
CMD ["nginx"]

Sarah создал файл конфигурации Nginx, который мы просто копируем, когда контейнер построен. Потому что вы не хотите быть в бизнесе настройки Nginx (OMG вы не), Сара разместила свой файл конфигурации к гисту Отказ

Nginx – черный ящик отчаяния

Я использую Дочсерское расширение для VS COD Е, чтобы я мог видеть и управлять всеми моими изображениями и контейнерами. Я не боюсь терминала, но мой мозг может помнить только так много флагов.

Теперь нам нужен реестр для толкания контейнера к. Мы собираемся настроить Azure Consister Services (ACR) для этого.

Вы можете создать репозиторий ACR из веб-портала, но доказать, что я не боюсь терминала, мы сделаем это с Azure Cli Отказ

Во-первых, нам нужна группа для ресурсов. Я позвонил шахту “vscodecandothat”.

az group create — name vsCodeCanDoThat — location eastus

Теперь создайте репозиторий ACR. Я позвонил мою “Hollandcr”.

az acr create --resource-group vsCodeCanDoThat --name hollandcr --sku Basic

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

hollandcr.azurecr.io/vscodecandothat:latest

Хорошо – теперь нам нужен сайт для размещения нашего контейнера. Для этого мы используем Azure App Service.

Создание службы приложений

Сначала создайте план обслуживания Linux. Для этого вам нужно ваше имя приложения и вашу группу ресурсов.

Так

az appservice plan create -n appName -g resourceGroupName --is-linux -l "South Central US" --sku S1 --number-of-workers 1

Становится

az appservice plan create -n vsCodeCanDoThatSP -g vsCodeCanDoThat --is-linux -l "South Central US" --sku S1 --number-of-workers 1

Теперь создайте веб-приложение и укажите его в контейнер, который был нажат в реестр AKS. Это занимает 4 параметра.

  • Служба плана
  • Группа ресурсов
  • Имя приложения (вы еще не определили это)
  • Docker Image, которое вы нажали ранее
az webapp create -n vsCodeCanDoThatSP -g vsCodeCanDoThatRG -p vscodecandothat -i hollandcr.azurecr.io/vscodecandothat:latest

Вот и все. Вы вернетесь к URL, и вы сможете его открыть и увидеть свой сайт.

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

Первое, что мы сделаем, это создать наш сайт для «постоянного развертывания» из нашего реестра контейнеров.

Если вы используете расширение приложений для VS-кода, все ваши сайты Azure будут отображаться прямо в редакторе. Вы можете просто щелкнуть правой кнопкой мыши и сказать «Открыть портал».

Выберите опцию меню «Контейнер Docker» …

На этой странице вы увидите контейнер, который вы настроили из терминала. Внизу находится вариант, чтобы включить «постоянное развертывание».

Когда вы включите это включенные и нажимайте «Сохранить», веб-канал будет создан в вашем реестре Azure Container для этого определенного контейнера. Теперь, в любое время изображение с тегом «Последнее» обновляется, WebHook будет выстрелить и уведомить сервис приложений, которая автоматически вытаскивает на ваше изображение.

Итак, мы уже автоматизировали некоторые из этого. Как только мы нажимаем изображение, он будет развернут. Мы ничего не должны делать, кроме того, чтобы выталкивать его. Но мы не хотим его толкать. Мы хотим, чтобы кто-то еще для этого.

А кто это будет делать? Роботы, вот кто. Или кому? Или кем. К счастью, я больше не в старшей школе English больше. Я потерпел неудачу один раз, и этого было достаточно.

Настройка сервера сборки

Это точка, в которую я говорю вам, что мы собираемся использовать Услуги команды Visual Studio (VSTS). Тогда вы говорите: «Визуальная студия? Я не использую .NET ». И я говорю: «Я знаю, это запутанно».

Нам нужна система, специально предназначенная для автоматизации сборки и развертывания. Это именно то, что VSTS/делает. Кроме того, это бесплатно для 5 пользователей или меньше (в пространстве проекта) и «Free» – единственное слово на моем языке любви. Единственное слово, кроме «пива».

Создать учетную запись VSTS Если у вас нет одного. Как только вы сделаете, вы приземлитесь на экране приборной панели.

Отсюда вы хотите создать новый командный проект.

Дайте вашему проекту имя и описание, которое никто не найдет полезным. Оставьте контроль версий в Git.

Следующий экран дает вам URL-адрес GIT для проверки вашего кода. Но у нас уже есть GitHub, поэтому просто игнорируйте это и выберите опцию «или код сборки из внешнего репозитория».

Авторизовать VSTS в Github и выберите репо …

Следующий экран предлагает помочь вам начать с шаблона. В этом случае мы собираемся катиться из пустого процесса. Потому что мы такое твердое ядро.

Теперь мы собираемся начать добавлять шаги для VSTS для выполнения для выполнения сборки и развертывания. Потяните из исходного контроля уже происходит, поэтому первое, что нам нужно сделать, это запустить NPM установить в нашем коде. Для этого добавьте задачу на «Фазу 1». В нашей сборке/развертывании только 1 этап.

Поиск «NPM» и добавьте задачу NPM.

По умолчанию вы получаете NPM установить Задача, которая именно то, что мы хотим. Вам не нужно добавлять какие-либо варианты к этой задаче.

Далее мы будем работать NPM запустить сборку Команда, которая построит экземпляр производства нашего VUE-приложения со всей магией WebPacking. Для этого добавьте еще одну задачу NPM. На этот раз измените название на «NPM Run Build». Установите «команду» на «Custom» и «Команда и аргументы», чтобы «Бежать сборки».

Большой! У нас есть сборка, теперь мы готовы подключить его. Добавьте новую задачу и найдите «Докер» один.

Это большой экран, так что вот изображение И тогда мы пошамли основные моменты.

  • Вы выбираете «Реестр контейнера Azure»
  • Укажите свою азумальную подписку
  • Укажите свое имя реестра (которое мы создали ранее)
  • Установите «имя изображения» до $ (Build.repository. Имя)
  • Убедитесь, что вы проверяете «Включить последний тег»

Наконец, мы хотим нажать на изображение. Добавьте еще одну задачу докера. На этот раз установите «действие», чтобы «нажать изображение». Установите «имя изображения» до $ (Build.repository. Имя) – просто как раньше.

Не выбирайте действие «Push Images» Отказ Если вы сделаете, ваша сборка потерпит неудачу, и вы вините Бога и все человечество, прежде чем вы понять, что вы выбрали неправильное действие. Не спрашивайте меня, как я знаю это.

И это это для определения определения сборки. Теперь вы можете нажать «Сохранить и очередь» вверху. Убедитесь, что вы выбираете агент «Хостированный превью Linux». Задачи Docker нуждаются в агенте Linux.

Теперь сядьте назад и дождитесь построения, чтобы выгнать. Если вы сделали все правильно, вы теперь настроили полностью автоматизированную систему сборки и развертывания для VUE приложению VUE, которое использует Docker и Azure. Это самые модные слова, которые я когда-либо выжимал в одно предложение.

Развернуть и быть счастливым

Это кажется многое для настройки, но, как только у вас есть так, будто вы хотите, все, что вам нужно сделать, это проверить в Code в свой REPO GitHUB и все это ручное развертывание? происходит автоматически. Ваши клиенты будут любить тебя. Ваши разработчики будут любить тебя. Черт возьми – даже вы можете любить тебя.

Я надеюсь, что вы найдете это полезным. Я ухожу, чтобы обновить свое резюме со всеми этими модными словами.

Оригинал: “https://www.freecodecamp.org/news/how-you-can-do-continuous-delivery-with-vue-docker-and-azure-2f1e31fff832/”