個人公衆號: MarkerHub,網站: https://markerhub.com更多精選文章請點擊:Java筆記大全.mdphp
公司初創技術團隊,沒有任何基礎設施的狀況下,須要搭建一系列 code 管理以及自動化部署等工具…. 因此引起了下面一系列的部署過程,歷時兩天,中間也是碰到各類問題,但最終把基本工具所有搭建成功,耶~,下面帶你們一塊兒看下這次搭建過程。前端
服務器一臺,CentOS 的,公司就給了一臺配置較低的服務器當臨時服務器,沒辦法了,就這麼搞吧。java
思考:若是我用傳統的 yum 來安裝,確定會被我裝亂七八糟,還不方便本身管理維護,左右爲難的狀況下我選擇了 Dokcer,可能有些小夥伴問 Docker 是啥怎麼用,不要慌這裏有傳送門:node
https://segmentfault.com/a/11...
爲了快速搭建一套 PHP 測試環境我決定用 laradock 了,雖然文件不少,可是裏面封裝的東西也是比較全的,後期開發不知道會用到什麼技術,就決定先用這個,隨時能夠啓動用獲得的服務。mysql
laradock 官方文檔給的介紹也很全面,我這裏採用的方式是部署多套項目方式目錄結構以下:nginx
+ laradock + project-1 + project-2
1.git clone https://github.com/laradock/laradock
laravel
2.cp env-example .env
git
env 裏面的配置能夠修改的,能夠根據本身狀況進行調整github
3.docker-compose up -d nginx php-fpm mysql redis
web
後面能夠加上你要啓動的程序,像 rabbitmq、mongo 等等,須要的時候追加在尾部就能夠啓動,首次啓動時間有點長
4.docker-compose exec --user=laradock workspace bash
像 laravel 等項目確定少不了 composer,執行這個命令進入工做區,就能夠執行 composer 了
5.docker-compose exec nginx nginx -s reload
確定有人會問我更改了 nginx 配置是否是每次都要進入 nginx 容器去重啓,或者把整個容器都重啓了呀,不用的,執行這個命令就能夠重啓 nginx 了。nginx 站點配置文件在哪裏呢:./laradock/nginx/sites/
先運行下試試吧。
如今運行環境已經搭建好了,我代碼應該怎麼存放呢,其實有不少的選擇,要根據本身的實際狀況出發,如:GitHub、碼雲、GitLab 等等,我選擇的是 GitLab,剛開始沒有發現 laradock 其實提供了 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 #參數解釋: #-d:讓容器後臺運行 #-p:暴露端口,把容器的443端口指向到宿主機443端口,宿主機8080->容器80,宿主機222->容器22 #宿主機端口能夠根據本身的狀況本身定製 #-name 給你的容器起個名,只要不和現有的重複就能夠 #--restart 當容器退出時docker是否重啓 #-v 這就是掛載磁盤了,把宿主機的目錄掛載到容器中,這麼作哪怕是容器壞了個人內容也不會丟失。 #宿主機/home/gitlab/config目錄掛載到容器中/etc/gitlab目錄,宿主機目錄根據本身狀況定 #gitlab/gitlab-ce 這個就是要啓動的鏡像,若是鏡像不存在,docker會自動下載最新版
容器啓動成功以後會有一段時間來啓動 GitLab,看到啓動成功立馬訪問是訪問不到的,稍微等一下就能夠了,配置文件都在你指定的宿主機目錄下能夠修改,須要修改的內容以下:
gitlab_rails['gitlab_ssh_host'] = '宿主機IP'#宿主機的IP地址 gitlab_rails['gitlab_shell_ssh_port'] = 222#暴露給宿主機的ssh端口 external_url '域名'#分配給gitlab的域名,能夠用nginx作反向代理到8080端口
實現自動化部署有不少種方式如:webhook、Jenkins、Travis CI 等等,個人選擇是 Jenkins,由於以前部署用過因此這裏依舊用了這個,laradock 依舊提供了 Jenkins 服務,又是由於沒發現本身搭建了一個。。。看來下次要先多看看在動手了。
docker run -d \ --name myjenkins \ -p 8181:8080 \ -p 50000:50000 \ -v /home/jenkins/:/var/jenkins_home \ jenkins/jenkins #參數解釋 #-d:讓容器後臺運行 #-p:暴露端口,宿主機8181->容器8080,宿主機50000->容器50000 #-v 這就是掛載磁盤了,把宿主機的目錄掛載到容器中,這麼作哪怕是容器壞了個人內容也不會丟失。 #宿主機/home/jenkins/目錄掛載到容器中/var/jenkins_home目錄,宿主機目錄根據本身狀況定
是否是也很簡單~。~ ,可是 Jenkins 安裝成功後會有一個初始化密碼,怎麼查看初始化密碼呢,有兩種方式:
#第一種方式 docker logs <你的容器名字> #這樣就能夠查看容器輸出的內容 #第二種方式 cat /home/jenkins/secrets/initialAdminPassword#這裏好的/home/jenkins須要替換成你掛載的目錄
輸入你上面獲取到的初始化密碼,下一步我選擇的是推薦安裝,後面本身須要的本身能夠再去插件庫安裝。
初始化成功以後前往系統設置 -> 插件管理安裝幾個必要插件:
Publish Over SSH GitLab Plugin #由於是使用的Gitlab因此要安裝這個 NodeJS Plugin #咱們前端使用的Vue因此要用到node
1、基礎配置
安裝完插件以後須要配置一些基礎內容如 jdk、node、ssh 等
1.ssh 安裝
進入:Manage Jenkins-> Configure System
點擊高級:
點擊 Test Configuration 測試是否鏈接成功
2.jdk、git
進入:Manage Jenkins-> Global Tool Configuration
我這裏 jdk、git 採用自動安裝,jdk 安裝時候須要一個帳號,去註冊下就能夠
3.nodejs 安裝
2、建立工程
3、配置工程
設置最多保留幾個版本構建
使用 git 源碼工具,輸入 git 地址、添加 git 用戶
if [ -f "test.tar.gz" ];then rm testv.tar.gz fi tar -zcvf test.tar.gz ./*
這裏爲何要把項目打包呢,由於下面要配置的 ssh 不支持文件夾傳輸,因此須要先將內容進行打包而後去服務器進行解包
所有保存好就能夠去構建了。耶~
長時間沒寫文章了,這個篇幅較長,謝謝耐心閱讀,但願對您有所幫助,也但願你們提供下不一樣的意見,找到更有效的方式來完成,謝謝!