問題背景 公司初創技術團隊,沒有任何基礎設施的情況下,需要搭建一系列code管理以及自動化部署等工具….所以引發了下面一系列的部署過程,歷時兩天,中間也是碰到各種問題,但最終把基本工具全部搭建成功,耶~,下面帶大家一起看下此次搭建過程。 資源服務器一臺,CentOS的,公司就給了一臺配置較低的服務器當臨時服務器,沒辦法了,就這么搞吧。 思考:如果我用傳統的yum來安裝,肯定會被我裝亂七八糟,還不方便自己管理維護,左右為難的情況下我選擇了Dokcer,可能有些小伙伴問Docker是啥怎么用,不要慌這里有傳送門: 測試環境搭建 為了快速搭建一套PHP測試環境我決定用laradock了,雖然文件很多,但是里面封裝的東西也是比較全的,后期開發不知道會用到什么技術,就決定先用這個,隨時可以啟動用得到的服務。 laradock官方文檔給的介紹也很全面,我這里采用的方式是部署多套項目方式目錄結構如下: + laradock+ project-1+ project-2 1.git clone https://github.com/laradock/laradock 2.cp env-example .env env 里面的配置可以修改的,可以根據自己情況進行調整 3.docker-compose up -d nginx php-fpm mysql redis 后面可以加上你要啟動的程序,像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/ 先運行下試試吧。 GitLab現在運行環境已經搭建好了,我代碼應該怎么存放呢,其實有很多的選擇,要根據自己的實際情況出發,如:GitHub、碼云、GitLab等等,我選擇的是GitLab,剛開始沒有發現laradock其實提供了GitLab服務。。只能自己折騰了,其實很簡單。
容器啟動成功之后會有一段時間來啟動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服務,又是因為沒發現自己搭建了一個。。。看來下次要先多看看在動手了。
是不是也很簡單~。~ ,但是Jenkins安裝成功后會有一個初始化密碼,怎么查看初始化密碼呢,有兩種方式: #第一種方式docker logs <你的容器名字> #這樣就可以查看容器輸出的內容#第二種方式cat /home/jenkins/secrets/initialAdminPassword#這里好的/home/jenkins需要替換成你掛載的目錄 輸入你上面獲取到的初始化密碼,下一步我選擇的是推薦安裝,后面自己需要的自己可以再去插件庫安裝。 插件安裝初始化成功之后前往系統設置->插件管理安裝幾個必要插件: 開始征程一、基礎配置 安裝完插件之后需要配置一些基礎內容如jdk、node、ssh等 1.ssh安裝 進入:Manage Jenkins-> Configure System 點擊高級: 點擊Test Configuration測試是否連接成功 2.jdk、git 進入:Manage Jenkins-> Global Tool Configuration 我這里jdk、git采用自動安裝,jdk安裝時候需要一個賬號,去注冊下就可以 3.nodejs安裝 二、創建工程
三、配置工程 設置最多保留幾個版本構建 使用git源碼工具,輸入git地址、添加git用戶 if [ -f 'test.tar.gz' ];thenrm testv.tar.gzfitar -zcvf test.tar.gz ./* 這里為什么要把項目打包呢,因為下面要配置的ssh不支持文件夾傳輸,所以需要先將內容進行打包然后去服務器進行解包 全部保存好就可以去構建了。耶~ |
|
來自: Bladexu的文庫 > 《技術文摘》