предисловие
вместе сdevops
С развитием , интерфейсное развертывание стало более простым и контролируемым.docker
🐳+nginx
+jenkins
Конкретный эффект реализации для реализации процесса автоматизированного развертывания переднего плана заключается в том, что разработчики разрабатывают локально, разрабатывают и отправляют код в указанную ветку, 😊 Автоматически запускают jenkins для непрерывной интеграции и автоматического развертывания. После завершения развертывания вы получите уведомление по электронной почте.После успешной сборки упакованный файл будет загружен на сервер.nginx
Страница презентации обратного прокси. Если сборка не удалась, распечатывается журнал ошибок. а такжеdocker
🐳 — очень важная часть всего нашего плана развертывания.docker
Строительные зеркала обеспечивают единство окружающей среды🐂🍺.
Цель развертывания
- Сборка среды docker🐳, nginx, jenkins
- Настройте docker-compose.yaml
среда сборки
В этой статье используется облачный сервер centos7.
докер среда
Если все правы
docker
,docker-compose
Если вам что-то непонятно, вы можете пойти восполнить свои знания в этой области, и я не буду здесь вдаваться в подробности.
Если вам интересно, вы можете прочитать мою статьюЭтой статьи достаточно, чтобы Xiaobai выучил докер (рекомендуемая коллекция)
Перед установкой docker давайте взглянем на определение версии docker, которое поможет нам выбрать и использовать подходящую версию Docker в будущих разработках. Для докера он делится на две серии:
- Издание для сообщества (CE)
- Корпоративная версия (ee)
Разница между платой Community Edition и Enterprise Edition Enterprise Edition заключается не в чем ином, как в предоставлении дополнительных услуг.
sudo yum install yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
Если ничего другого, введитеdocker -v
Появится следующая страница, что означает успех
sudo systemctl enable docker // 设置开机自启
sudo systemctl start docker // 启动docker
Установить докер-компоновку
Полное приложение часто состоит не из контейнера, а из группы контейнеров. При построении группы контейнеров необходимо выполнять слишком много команд и, что более важно, необходимо учитывать слишком много зависимостей между приложениями и контейнерами, что представляет собой большую волну операций. docker-compose призван решить проблему управления несколькими контейнерами.
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Введите команду для установкиdocker-compose
, повысить привилегии после завершения установки
sudo chmod +x /usr/local/bin/docker-compose
После выполнения вышеуказанной команды случайный ввод невозможен.docker-componse -v
Отображается следующая страница
Установите среду jenkins и nginx.
Среды jenkins и nginx извлекаются из удаленной библиотеки образов докеров.
docker pull jenkins/jenkins:lts
docker pull nginx
Рекомендуемая установка здесьjenkins/jenkins
это зеркало,jenkins
Образ официально поддерживается докером и давно не поддерживается.jenkins/jenkins
Это библиотека, официально поддерживаемая Дженкинсом. Частота обновления очень к месту. После lts означает долгосрочную поддержку.
Выполнить после завершения установкиdocker images
Вы можете четко видеть изображения, которые существуют под текущим докером.
Напишите каталог docker-compose
Структуру каталогов здесь можно понимать как файлы конфигурации и тома монтирования, необходимые для построения среды.Подобно созданию проекта разработки программного обеспечения, рекомендуется объединить компоненты проекта Docker Compose в файловый каталог, который более удобен для наша разработка Управляйте и переносите. Структура каталогов выглядит следующим образом 👉
+ compose
- docker-compose.yml // docker-compose执行文件
+ nginx
+ conf.d
- nginx.conf // nginx配置
+ jenkins
- jenkins_home // jenkins挂载卷
+ webserver
-static //存放前端打包后的dist文件
Для простоты структура каталогов на моей стороне размещена непосредственно под home.Конечно, вы также можете создать новый каталог.
Напишите docker-compose.yml
version: '3'
services: # 集合
docker_jenkins:
user: root # 为了避免一些权限问题 在这我使用了root
restart: always # 重启方式
image: jenkins/jenkins:lts # 指定服务所使用的镜像 在这里我选择了 LTS (长期支持)
container_name: jenkins # 容器名称
ports: # 对外暴露的端口定义
- 8080:8080
- 50000:50000
volumes: # 卷挂载路径
- /home/jenkins/jenkins_home/:/var/jenkins_home # 这是我们一开始创建的目录挂载到容器内的jenkins_home目录
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker # 这是为了我们可以在容器内使用docker命令
- /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
docker_nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 8090:80
- 80:80
- 433:433
volumes:
- /home/nginx/conf.d/:/etc/nginx/conf.d
- /home/webserver/static/jenkins/dist/:/usr/share/nginx/html
написать nginx.conf
server{
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
}
Запустить докер-композицию
Вернитесь в каталог компоновки
docker-compose up -d
войтиdocker ps
Проверить состояние контейнераКак показано на рисунке выше, рабочее состояние указывает на то, что оно включено, и нет ничего случайного в том, что IP-адрес браузера плюс номер порта 8080
Обратите внимание, вашего пароля там нет/var/jenkins/jenkins_home/
Далее в исходной конфигурацииdocker-compose.ym
в лvolumes
середина/home/jenkins/jenkins_home/
Получив пароль для входа, устанавливаем推荐的插件
Установите плагин Дженкинс
Перед этим подготовьте проект vue, сгенерированный vue-cli, и поместите проект в gitlab.
- jenkins установить необходимые плагины
gitlab
,Publish Over SSH
,nodejs
Нажмите «Установить напрямую», чтобы установить плагин. После завершения установки настройте среду nodejs и параметры ssh.
Выбрать на главной страницеglobal tool Configuration
>NodeJS
Выберите автоматическую установку и соответствующий номер версии nodejs, нажмите «Сохранить» после успешного выбора.настроить информацию ssh,Manage Jenkins
>configure System
Заполните соответствующую информацию о сервере
Дженкинс интегрируется с gitlab
сгенерировать ключ
- Сгенерировать ssh-ключ на сервере (если он уже существует, генерировать его не нужно)
сгенерировать команду
ssh-keygen -t rsa
закрытый ключ, который будет сгенерированid_rsa
добавить в учетные данные jenkins
Войдите в gitlab, наgitlab
Средняя конфигурацияid_rsa.pub
открытый ключ
Новый проект
После подготовки начните создавать новую задачу, выберите新建item
>freestyle project
Создайте проект для фристайла.
управление исходным кодом
После завершения нового творения в源码管理
Настройте информацию git вcredentials
Выберите учетные данные, которые мы только что добавили
триггер сборки
существует构建触发器中
Выберите, когда мы запускаем сборку, вы можете выбрать крючок вашего товарища по команде, напримерpush
когда код,Merge Request
время ждать.
нажмите高级选项
оказатьсяsecret token
>Generate
Сгенерировать значение токена
После того, как вы успешно настроили здесь, вам также нужно перейти вgitlab
Добавьте соответствующие хуки в . Обратите внимание на картинку вышеwebhookURL
(обведены красным) иsecret token
значение, перейдите на gitlab для настройки.
среда сборки
Среда сборки выберите среду узла
Построить
Настройте команду пакета узла, загрузите сжатый файл дистрибутива на удаленный сервер после завершения пакета,remote directory
устраненstatic
Файл ниже, каталог веб-сервера здесь - это каталог, написанный в началеНа этом наша настройка подошла к концу, нажимаем Сохранить. изменить код,git push
, вы обнаружите, что проект автоматически начал собираться 😊
❤️Спасибо всем
1. Если статья поможет вам, пожалуйста, наведите указательный палец на похвалу 👍, ваша похвала является движущей силой моей работы.
2. Следуйте официальному аккаунту «Фронтальная элита»! Отправить высококачественные статьи время от времени.