基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins( 二 )


+ compose- docker-compose.yml// docker-compose執行文件+ nginx + conf.d- nginx.conf// Nginx配置+ jenkins- jenkins_home// Jenkins掛載卷+ webserver -static//存放前端打包后的dist文件Web server目錄屬于后期生成暫不討論,需要手動創建的是Compose,Nginx和Jenkins目錄及其下屬文件,其中最主要的是docker-compose.yml文件和nginx.conf文件的配置 。以上文件夾建議放在根目錄下面,可以放在home文件夾之下也可以單獨創建一個新的文件夾 。
 
docker-compose.yml文件配置version: '3'services:# 集合docker_jenkins:user: root# 為了避免一些權限問題 在這我使用了rootrestart: always# 重啟方式image: jenkins/jenkins:lts# 指定服務所使用的鏡像 在這里我選擇了 LTS (長期支持)container_name: jenkins# 容器名稱ports:# 對外暴露的端口定義- 8080:8080- 50000:50000volumes:# 卷掛載路徑- /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-composedocker_nginx:restart: alwaysimage: nginxcontainer_name: nginxports:- 8090:80- 80:80- 433:433volumes:- /home/nginx/conf.d/:/etc/nginx/conf.d- /home/webserver/static/jenkins/dist/dist:/usr/share/nginx/html 
nginx.conf文件配置server{listen80;root /usr/share/nginx/html;index index.html index.htm;} 上述兩個文件配置完成之后,需要進入/home/compose目錄下面輸入以下命令,進行環境的啟動:
docker-compose up -d輸入docker ps -a 查看容器的情況:

基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


狀態顯示up,后面的端口號顯示如上為正常狀態 。在瀏覽器輸入你云服務器的公網IP加上8080的端口號就可以顯示如下頁面:
基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


注意點:
  • 在此步驟之前,切記一定要開放云服務器的80端口安全組(可以參考提供的一鍵開通功能),但是除此之外建議手動添加8080端口的安全組 。
  • 80端口:是為HTTP(HyperText Transport Protocol)即超文本傳輸協議開放的端口 。
  • 8080端口:是被用于WWW代理服務的,可以實現網頁瀏覽 。
上圖所需要的密碼在docker-compose.yml中的volumes中的/home/jenkins/jenkins_home/secrets/initAdminPassword中 ??梢酝ㄟ^以下命令獲得:
cat /home/jenkins/jenkins_home/secrets/initialAdminPassword 
安裝Jenkins插件進入頁面之后,選擇推薦安裝 。
基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


安裝完成之后,選擇左側Manage Jenkins選項 。如下圖所示:
基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


 Jenkins中Manage Plugins搜索以下插件GitLab、Publish Over SSH、Nodejs并安裝 。
基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


安裝完成后配置Nodejs環境和SSH參數 在首頁選擇global tool Configuration>NodeJS選擇自動安裝和對應的Nodejs版本號,選擇成功后點擊保存 。
基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins



基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


配置SSH信息,Manage Jenkins>configure System填寫服務器的相關信息:
基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins



基于Docker、Nginx和Jenkins實現前端自動化部署,前端服務器自動化部署Docker、Nginx和Jenkins


 
關聯Jenkins和GitLab 
生成密鑰在根目錄下執行一下命令:

推薦閱讀