» » Как настроить Continuous Deployment для своего проекта: личный опыт

 

Как настроить Continuous Deployment для своего проекта: личный опыт

Автор: admin от 9-02-2019, 12:45, посмотрело: 30

Как настроить Continuous Deployment для своего проекта: личный опыт


Перевели для вас статью Юлиуса Минмо о настройке непрерывной интеграции (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам.



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

«Профессия Frontend-разработчик».

[/quote]

Итак, для начала давайте посмотрим на схему, где объясняется разница между Continuous Delivery и Continuous Deployment.



Как настроить Continuous Deployment для своего проекта: личный опыт


В случае с домашним проектом выбираем Continuous Deployment, поскольку никто, кроме вас, с ним (проектом) не работает и никто от него не зависит. Ну а поскольку в большинстве случаев хочется, чтобы изменения были немедленно развернуты, то выбор очевиден. Если же вам позже захочется изменить процесс, вы всегда сможете это сделать.



Вы изучите следующее:


  • Как сделать Dockerfile.

  • Как выгрузить проект на GitHub.

  • Как автоматически построить образ docker на Docker Hub.

  • Как автоматически загрузить и запустить образ с Watchtower.



Что требуется:


  • Базовое понимание того, что представляют собой Docker и Dockerfile.

  • Установленный Git.

  • Учетная запись на Docker Hub



Сервер (физический или виртуальный) с запущенным Docker.



Вот мои репозиторий GitHub
и Docker Hub, с которыми я работаю.



Почему я использую Docker?



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



Настройка Dockerfile



Сначала нам нужен Dockerfile для проекта. Этот файл всегда называется именно так и не имеет расширения. Он всегда находится в главной директории проекта.



Он начинается с оператора FROM, который сообщает Docker, с какого базового образа мы начинаем. Вы можете провести аналогию с живописью. Можем представить себе этот образ как готовый холст с нарисованным фоном и отсутствующим главным элементом композиции (вашей программой).



Далее копируем файлы проекта в контейнер при помощи команды COPY…



Она позволяет забрать файлы из начального расположения в текущее — конечно, внутри контейнера.



Далее необходимо установить зависимости, для этого я использую Python PIP. Главное, что нужно запомнить, — это запуск команд в контейнере с RUN.



From python:3.7

COPY..

RUN pip install -r requirements.txt




Все просто, правда? Теперь можно запускать программу в контейнере.



CMD [«python», "./my_script.py"]



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



Теперь давайте создадим репозиторий в GitHub, но помните, что строку “Initialize this repository with a README” не нужно трогать.



Как настроить Continuous Deployment для своего проекта: личный опыт


Теперь копируем URL.



Как настроить Continuous Deployment для своего проекта: личный опыт


Открываем cmd/shell корневой директории проекта. Теперь необходимо инициализировать репозиторий, добавить файлы, сконфигурировать remote-режим, закоммитить файлы и отправить проект на GitHub.



git init

git add *

git remote add origin github.com/.git

git commit -a -m «Make Dockerfile ready for CD»

git push -u origin master



Если все ОК, GitHub-репозиторий будет выглядеть вот так:



Как настроить Continuous Deployment для своего проекта: личный опыт


Мы на полпути к успеху!



Теперь нужно подключить GitHub к Docker Hub. Для этого нужно отправиться в настройки учетной записи.



Как настроить Continuous Deployment для своего проекта: личный опыт


Скролим вниз и подключаемся.



Как настроить Continuous Deployment для своего проекта: личный опыт


Теперь создаем репозиторий в Docker Hub.



Как настроить Continuous Deployment для своего проекта: личный опыт


Называем свой репо и кликаем по иконке GitHub или Bitbucket. Потом выбираем организацию (обычно это ваш ник) и название проекта. При желании настройки можно изменить.



Как настроить Continuous Deployment для своего проекта: личный опыт


Ну а теперь последний шаг — здесь нам необходим Watchtower на целевой машине. Это программа, которая позволяет автоматизировать процесс. Если появляется апдейт, то Watchtower убирает оригинальный контейнер и создает контейнер из нового образа с такими же настройками.



Хорошая новость в том, что можно установить Watchtower с Docker, для этого необходимо ввести в терминал такую команду:



docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower



И теперь запускаем контейнер для своего проекта!



docker run -d --name /



-d позволяет программе работать в фоне, так что она не закроется, если вы закроете терминал.



Завершая сказанное, если вы отправите коммит к репозиторию GitHub, Docker Hub автоматически создаст образ Docker. Затем с ним уже будет взаимодействовать Watchtower.



Что касается тестов, то вы сможете использовать Travis CI. Вы можете прочитать об этом здесь, но суть в том, что вы добавляете в свой репозиторий еще один файл, в котором есть инструкции для внешнего сервера для выполнения модульных тестов или любые другие инструкции.



[quote]Skillbox рекомендует:



[/quote]

Источник: Хабр / Интересные публикации

Категория: Программирование

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *