Предыстория проблемы
Технологическая команда стартапа компании, не имеющая никакой инфраструктуры, должна создать ряд инструментов управления кодом и автоматического развертывания…. таким образом, он запустил следующую серию процессов развертывания, которые длились два дня и в середине столкнулись с различными проблемами, но в конце концов успешно собрал все основные инструменты. Да ~, давайте взглянем на процесс строительства.
ресурсы
Один сервер, CentOS. Компания предоставила сервер с более низкой конфигурацией в качестве временного сервера. Нет никакого способа. Давайте сделаем это.
Мышление: если я использую традиционную установку Yum, она определенно будет установлена мной в беспорядке, что мне неудобно управлять и поддерживать. Перед лицом дилеммы я выбрал докера. Может быть, кто-то из моих друзей спрашивал, как использовать docker . Не паникуй. Есть портал: Linux docker compose, среда разработки PHP для хореографии Docker
Построение тестовой среды
Чтобы быстро создать тестовую среду PHP, я решил использовать laradock. Хотя файлов много, пакет завершен. Я не знаю, какая технология будет использована в более поздней разработке, поэтому я решил использовать ее в первую очередь и запустить сервис, доступный в любое время. Официальные документы Laradock также содержат исчерпывающее введение. Способ, который я использую здесь, заключается в развертывании нескольких наборов проектов. Структура каталогов выглядит следующим образом:
+ laradock + project-1 + project-2
Начните использовать:
- клон git https://github.com/laradock/l…
cp env-пример .env
Конфигурация в Env может быть изменена и скорректирована в соответствии с вашей собственной ситуацией
docker-compose up -d nginx |/php -fpm mysql redis После этого вы можете добавить программы, которые хотите запустить, такие как rabbitmq, Mongo и т.д. когда вам нужно добавить их в хвост, вы можете запустить их. В первый раз это немного длинновато
docker-создание рабочей области исполнителя bash
В таких проектах, как laravel, должен быть композитор. Когда вы выполните эту команду и войдете в рабочую область, вы сможете выполнить composer
докер-составить exec nginx перезагрузка nginx -s
Кто-то спросит меня, нужно ли мне входить в контейнер nginx для перезапуска каждый раз, когда я изменяю конфигурацию nginx, или перезапускать весь контейнер. Нет, вы можете перезапустить nginx, выполнив эту команду. Где находится файл конфигурации сайта nginx.//лара док/nginx/сайты/
Сначала запустите его.
GitLab
Теперь, когда рабочая среда настроена, как я должен хранить свой код? На самом деле, есть много вариантов. Мне нужно начать с моей собственной реальной ситуации, такой как GitHub, облако кода, gitlab и т. Д. Я выбрал gitlab, но я не обнаружил, что lara dock на самом деле предоставляет услуги gitlab в самом начале.. Это просто факт.
docker \ run -d \ -p 443:443 \ -p 8080:80 \ -p 222:22 \ --name gitlab \ --restart always \ -v /home/gitlab/config:/etc/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce #Parameter interpretation: #-d: Let the container run in the background #-p: Expose port, point port 443 of container to port 443 of host, host 8080 - > container 80, host 222 - > container 22 #The host port can be customized according to its own situation #-Name name your container, as long as it doesn't duplicate the existing one #--Restart whether the docker restarts when the container exits #-V this is to mount the disk. Mount the host's directory into the container. In this way, even if the container is broken, my content will not be lost. #The host / home / gitlab / config directory is attached to the container / etc / gitlab directory. The host directory is determined according to your own situation #Gitlab / gitlab CE this is the image to start. If the image does not exist, docker will automatically download the latest version
После успешного запуска контейнера gitlab будет запущен в течение определенного периода времени. Вы не сможете получить к нему доступ сразу после успешного запуска контейнера. Буквально через мгновение файлы конфигурации могут быть изменены в указанном вами каталоге хоста. Содержание, подлежащее изменению, выглядит следующим образом:
gitlab_ rails['gitlab_ ssh_ Host '] =' host IP 'ා host IP address gitlab_ rails['gitlab_ shell_ ssh_ Port '] = 222 - SSH port exposed to the host external_ URL 'domain name' ා the domain name assigned to gitlab. You can use nginx as the reverse proxy to port 8080
Дженкинс
Существует множество способов реализовать автоматическое развертывание, таких как: webhook, Jenkins, Travis Ci и т.д. мой выбор-Дженкинс. Из-за предыдущего развертывания я все еще использую это здесь. Laradock по-прежнему предоставляет услуги Дженкинса, но также и потому, что я не обнаружил, что создал его… Похоже, в следующий раз нам нужно увидеть больше.
docker run -d \
--name myjenkins \
-p 8181:8080 \
-p 50000:50000 \
-v /home/jenkins/:/var/jenkins_home \
jenkins/jenkins
#Parameter interpretation
#-d: Let the container run in the background
#-p: Exposed port, host 8181 - > container 8080, host 50000 - > container 50000
#-V this is to mount the disk. Mount the host's directory into the container. In this way, even if the container is broken, my content will not be lost.
#Host / home / Jenkins / directory mount to container / var / Jenkins_ Home directory, the host directory depends on your own situationЭто тоже очень просто ~. ~Однако после успешной установки Jenkins появится пароль для инициализации. Существует два способа просмотра пароля инициализации:
#The first way Docker logs < your container name > ා this allows you to view the output of the container #The second way Cat / home / Jenkins / secrets / initialadminpassword ා here's a good / home / Jenkins directory to replace
Конфигурация Дженкинса
инициализация
Введите пароль для инициализации, полученный выше. Затем я выбираю рекомендуемую установку. Вы можете перейти в библиотеку подключаемых модулей, чтобы установить то, что вам нужно позже.
Установка штекера
После инициализации перейдите в настройки системы – > управление подключаемыми модулями и установите несколько необходимых подключаемых модулей:
Publish Over SSH Gitlab plugin - because gitlab is used, install this Nodejs plugin - the Vue used by our front end uses node
Начните путешествие
1, Базовая конфигурация
После установки плагина вам необходимо настроить некоторые базовые компоненты, такие как JDK, узел, SSH и т. Д
- Установка по SSH
Введите: управление Дженкинсом – > настройка системы
Нажмите кнопку Дополнительно:
Нажмите кнопку Проверить конфигурацию, чтобы проверить, успешно ли установлено соединение
- jdk,git
Введите: управление Дженкинсом – > глобальная конфигурация инструмента
Я использую автоматическую установку для JDK и GIT. При установке JDK вам потребуется учетная запись. Вы можете зарегистрировать его
- Установка Nodejs
]
2. Создайте проект
- Создайте новый проект
- Выберите свободный стиль
3, Проектирование Конфигурации
Настроено для хранения нескольких сборок
Используя инструмент git source, введите адрес git и добавьте пользователя git
if [ -f "test.tar.gz" ];then rm testv.tar.gz fi tar -zcvf test.tar.gz ./*
Зачем упаковывать проект здесь? Поскольку SSH, который будет настроен ниже, не поддерживает передачу папок, вам необходимо сначала упаковать содержимое, а затем распаковать его на сервере
Все они сохранены и готовы к строительству. Да~
Спасибо, что посмотрели
Я уже давно не писал статей. Это долгий срок. Спасибо вам за ваше терпение. Я надеюсь, что это может вам помочь. Я также надеюсь, что вы сможете высказать разные мнения и найти более эффективный способ закончить его. Спасибо!