日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

jenkins docker 自动部署 构建_jenkins+docker+vue项目的自动部署环境

發布時間:2023/12/15 vue 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jenkins docker 自动部署 构建_jenkins+docker+vue项目的自动部署环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

亮點

  • 采用shell自定義腳本,控制集成部署環境更加方便靈活
  • 如果服務器更換,重新部署的工作量會比較小

準備工作

首先我們得有一臺服務器。我這里用的是阿里云ECS,華東節點。具體的購買操作的話百度會有教程。購買完成以后你會有一個公網的ip,以及一個通過ssh登錄服務器的密碼。

關于Docker的話,如果不了解的可以先去看文檔。Docker的Container(容器)就像輪船上的集裝箱。集裝箱各自裝著各自的貨物,互不影響。比如一個Redis服務,一個Mongodb服務,都可以放到一個單獨的Container(集裝箱)里面。而這些容器,又依賴一個執行環境。這個執行環境就是Docker所說的Image(鏡像)。每一個Container管理著自己的生命周期。

Jenkins是一款由Java開發的開源軟件項目,主要是用來持續集成的。相當于就是預先寫好腳本,調試成功之后,下一次如果再需要部署的時候就會自動執行上一次存儲的腳本,無需再修改。

安裝 Docker

參考文檔

卸載舊版本

$ sudo apt-get remove docker docker-engine docker.io

使用APT安裝

由于 apt 源使用 HTTPS 以確保軟件下載過程中不被篡改。因此,我們首先需要添加使用 HTTPS 傳輸的軟件包以及 CA 證書。

$ sudo apt-get update$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

鑒于國內網絡問題,強烈建議使用國內源,官方源請在注釋中查看。

為了確認所下載軟件包的合法性,需要添加軟件源的 GPG 密鑰。

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 官方源# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

然后,我們需要向 source.list 中添加 Docker 軟件源

$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"# 官方源# $ sudo add-apt-repository # "deb [arch=amd64] https://download.docker.com/linux/ubuntu # $(lsb_release -cs) # stable"

以上命令會添加穩定版本的 Docker CE APT 鏡像源,如果需要測試或每日構建版本的 Docker CE 請將 stable 改為 test 或者 nightly。

安裝 Docker CE

更新 apt 軟件包緩存,并安裝 docker-ce:

$ sudo apt-get update$ sudo apt-get install docker-ce

使用腳本自動安裝

在測試或開發環境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,Ubuntu 系統上可以使用這套腳本安裝:

$ curl -fsSL get.docker.com -o get-docker.sh$ sudo sh get-docker.sh --mirror Aliyun

執行這個命令后,腳本就會自動的將一切準備工作做好,并且把 Docker CE 的 Edge 版本安裝在系統中

啟動 Docker CE

$ sudo systemctl enable docker$ sudo systemctl start docker

建立 docker 用戶組

默認情況下,docker 命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root 用戶和 docker 組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統上不會直接使用 root 用戶。因此,更好地做法是將需要使用 docker 的用戶加入 docker 用戶組。

建立 docker 組:

$ sudo groupadd docker

將當前用戶加入 docker 組:

$ sudo usermod -aG docker $USER

退出當前終端并重新登錄,進行如下測試。

測試 Docker 是否安裝正確

$ docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-worldd1725b59e92d: Pull completeDigest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788Status: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/

若能正常輸出以上信息,則說明安裝成功。

鏡像加速

如果在使用過程中發現拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內鏡像加速。

阿里云鏡像加速

安裝 docker-compose

參考文檔

運行此命令以下載Docker Compose的當前穩定版本

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

對二進制文件應用可執行權限

$ sudo chmod +x /usr/local/bin/docker-compose

查看版本

$ docker-compose --version

安裝 jenkins

在安裝jenkins我選擇了使用docker-compose docker-compose 是一個用來把 docker 自動化的東西 有了 docker-compose 你可以把所有繁復的 docker 操作全都一條命令,自動化的完成。

首先我們需要在服務器上創建一個目錄機構 (我只是做個演示)

/home/jenkins - docker-compose.yml - jenkins-home

接下來我們來編寫 docker-compose.yml 安裝jenkins

version: '3' # 指定 docker-compose.yml 文件的寫法格式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-compose命令

我們需要進入到 jenkins 目錄下執行:

$ docker-compose up -d

這個命令會幫我們自動拉取鏡像并配置

不出意外你現在可以打開你的服務器地址 http://xxxxxxx:端口號 就能看到這個界面:

打開你所創建的jenkins目錄進入到jenkins-home/home/jenkins/jenkins-home

進入 secrets 目錄

$ cat initialAdminPassword

然后把里面的文本復制出來填到管理員密碼中

接下來需要安裝兩個插件

NodeJS PluginPublish Over SSH

然后我們滑到最下方

開始創建項目部署

官方參考

1、首先在項目根目錄創建一個nginx.conf文件

user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.lovelp.xin; # 域名 location / { root /app; # 指向目錄 index index.html; try_files $uri $uri/ /index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }}

2、在項目根目錄創建一個Dockerfile文件

FROM nodeWORKDIR /appCOPY package*.json ./RUN npm install -g cnpm --registry=https://registry.npm.taobao.orgRUN cnpm installCOPY ./ /appRUN npm run build:prodFROM nginxRUN mkdir /appCOPY --from=0 /app/dist /appCOPY nginx.conf /etc/nginx/nginx.conf

3、在項目根目錄創建一個setup.sh來幫助我們執行腳本

#!/usr/bin/env bashimage_version=`date +%Y%m%d%H%M`;# 關閉shop_admin容器docker stop shop_admin || true;# 刪除shop_admin容器docker rm shop_admin || true;# 刪除shop/admin鏡像docker rmi --force $(docker images | grep shop/admin | awk '{print $3}')# 構建shop/admin:$image_version鏡像docker build . -t shop/admin:$image_version;# 查看鏡像列表docker images;# 基于shop/admin 鏡像 構建一個容器 shop_admindocker run -p 9527:80 -d --name shop_admin shop/admin:$image_version;# 查看日志docker logs shop_admin;#刪除build過程中產生的鏡像 #docker image prune -a -fdocker rmi $(docker images -f "dangling=true" -q)# 對空間進行自動清理docker system prune -a -f

4、最后我們需要在jenkins上創建項目

最后我們就可以愉快的 Build Now 了

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的jenkins docker 自动部署 构建_jenkins+docker+vue项目的自动部署环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。