предисловие
Следуя предыдущей статье, реализуйте cliЛеса проекта, чтобы завершить инициализацию проекта.
В этой статье в основном говорится о непрерывной интеграции CI/CD после завершения разработки.
Основные функции: Когда код помещается в репозиторий github, он автоматически упаковывается и развертывается на соответствующем сервере.
На самом деле этого можно добиться с помощью jenkins.
Зачем добавлять докер? Для установки Х.
Ха-ха, шучу, официальный сайт Дженкинса также рекомендует нам это сделать. Основная цельПовысьте скорость и согласованность автоматизированных задач.
установка докера
Я использую Aliyun Centos.
Перед установкой Docker Engine-Community необходимо настроить следующие зависимости:
# 相关依赖
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 设置稳定仓库
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
При нормальных обстоятельствах, приведенные выше несколько строк команд могут установить докер, В это время вы можете передать:
docker --version
Проверьте, успешно ли установлен докер.
Чтобы установить докер в разных операционных системах, вы можете обратиться кучебник для новичков.
Перед тем, как спуститься, кратко расскажем об основных знаниях докера:
что делает докер
Docker можно рассматривать как легковесныйвиртуальная машина.
Вместо того, чтобы имитировать полную операционную систему, контейнеры Docker изолируют процессы. Другими словами, нанесите защитный слой на нормальный процесс. Для процесса в контейнере различные ресурсы, к которым он обращается, являются виртуальными, чтобы обеспечить изоляцию от базовой системы.
Преимущества перед виртуальными машинами:
- начать быстро
- Меньшее использование ресурсов
- небольшой объем
докер состав
Полный компонент Docker:
1. DockerClient客户端
2. Docker Daemon守护进程
3. Docker Image镜像
4. DockerContainer容器
Клиент DockerClient
Docker использует архитектуру c/s (клиент-сервер). Используйте удаленный API для управления и создания контейнеров Docker, а командная строка, которую мы используем, на самом деле является клиентом Docker. Мы используем оболочку, чтобы уведомить сервер о работе контейнера докеров.
Демон Docker Daemon
Демон Docker выступает в роли сервера, который принимает запросы от клиентов и обрабатывает их (создает, запускает, распространяет контейнеры).
файл изображения изображения
Docker упаковывает приложение и его зависимости в файл образа..Только через этот файл можно сгенерировать Docker-контейнер. Файл изображения можно рассматривать как шаблон для контейнера. Docker создает экземпляр контейнера из файла образа. Один и тот же файл образа может генерировать несколько экземпляров контейнера, работающих одновременно.
Контейнер DockerContainer
Контейнер должен генерировать соответствующую среду на основе файла образа. Используйте для:
- запустить службу
- программное обеспечение для тестирования
- Непрерывная интеграция
- ......
установка Дженкинса
Как мы знаем выше, создание контейнера докеров зависит от файла образа изображения. На официальном сайте jenkins мы можем узнать, что он рекомендует нам использовать индивидуальные продукты.jenkinsci/blueoceanчтобы сделать наш файл изображения.
Конкретные операции:
docker run \
--rm \
-u root \
-p 8080:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
jenkinsci/blueocean
Разберите приведенную выше команду:
- --rm: Уничтожить контейнер, когда он завершит работу.
- -u root: уровень разрешений — root
- -p 8080:8080: сопоставьте порт docker80 с локальным портом 80 для доступа.
- -v jenkins-data:/var/jenkins_home: сопоставьте каталог /var/jenkins_home в контейнере с томом Docker и назовите его jenkins-data. Если том не существует, команда запуска docker автоматически создаст для вас том.
- jenkinsci/blueocean: использовать этот файл в качестве файла образа контейнера, если нет, то docker загрузит его сам.
Не удивительно, что при доступе к вашему локальному 80 порту (не рекомендуется использовать 80 порт, скорее всего он занят, рекомендуется изменить его на менее часто используемый порт) вы можете увидеть следующую страницу:
Приведенный выше пароль находится в журнале вашей предыдущей командной строки, просто скопируйте символ перед * в две строки.
Войдите и установите плагин прямо в соответствии с рекомендациями, пока установка jenkins завершена.
Настройте интерфейсную среду упаковки и развертывания проекта.
Установите плагин:
-
публикация через ssh используется для подключения к удаленному серверу
-
Плагин Deploy to container используется для публикации упакованных приложений на удаленных серверах.
-
Плагин NodeJS не объясняет
Manage Jenkins -> Configure System
Чтобы настроить SSH для удаленного сервера:
-
Passphrase Пароль сервера
-
Путь к ключу Путь к файлу ключа удаленного сервера
-
Ключ Содержимое файла ключа
-
Имя произвольного сервера
-
HostName IP-адрес сервера
-
Имя пользователя сервера
-
Удаленный каталог Каталог для передачи файлов
Manage Jenkins -> Global tool configuration
Настройте среду узла:
Новый проект
После завершения вышеуказанной настройки системы мы можем начать настройку нашего проекта.
новый предмет
->
свободный стиль
->
Управление исходным кодом выбирает git
->
Триггер сборки (сборка по времени, опрос SCM: установка времени, опрос изменений кода репозитория github для выполнения развертывания сборки)
Приведенное выше расписание является интервалом для настройки времени опроса.Каждые 5 минут проверяйте, не изменился ли код в репозитории github.Если есть изменение, выполните следующую команду оболочки, чтобы завершить упаковку и развертывание.
->
Среда сборки (узел)
->
построить исполняемую оболочку
cd /var/jenkins_home/workspace/mason-test #进入Jenkins工作空间下项目目录
node -v #检测node版本(此条命令非必要)
npm -v #检测npm版本(此条命令非必要)
cnpm install #安装项目中的依赖
npm run build #打包
tar -zcvf build.tar.gz build/ #压缩,方便传输,我这里打包的文件名是build
->
Действия после сборки:
Удалить префикс, чтобы удалить префикс
Каталог, опубликованный удаленным каталогом
Команда Exec публикует выполненную команду:
cd /root/dreamONE
tar -zxvf build.tar.gz
rm -rf build.tar.gz
На этом этапе настроена базовая автоматизированная структура упаковки и развертывания, и следующим шагом является выполнение подробных задач, таких как подробные проекты и отслеживание журналов.
позже
С проектными лесами:masoneast-cli,
С Docker + Jenkins полная постоянная интеграция CI / CD.
Следующим шагом является добавление внешней платформы мониторинга производительности путем обнаружения:
- Рендеринг выше сгиба
- стабильность страницы
- вызовы API
После завершения базового мониторинга производительности можно сформулировать стратегию оптимизации.