切換語言為:簡體

Docker部署Jenkins搭建前端構建環境

  • 爱糖宝
  • 2024-07-04
  • 2079
  • 0
  • 0

前言

一直想用Docker搭建jenkins構建環境。現在實踐操作了下,一套使用gitee+jenkins+nginx部署的環境。

搭建完成後,具體構建執行流程:

Docker部署Jenkins搭建前端構建環境

本文主要內容有:

  1. docker環境安裝

  2. 利用docker-compose啟動容器

  3. 配置jenkins

  4. 使用gitee+jenkins+nginx完成構建流程

1. 搭建環境

執行環境:阿里雲伺服器 2核2G 伺服器

1.1 安裝docker、docker-compose

檢視雲伺服器廠商官方文件即可。

1.2 拉取映象

1.2.1 nginx安裝

1.2.2 git安裝

Git安裝:

// 安裝git 
yum install -y git 

// 生成金鑰
ssh-keygen -t rsa -C "root" 

// 複製公鑰
cat ~/.ssh/id_rsa.pub

需要將公鑰新增到Git倉庫,方便拉取程式碼。

步驟如下:

  1. 使用cat ~/.ssh/id_rsa.pub 命令,複製公鑰內容;

  2. 登入到Github或者gitee或者gitlab儲存庫託管服務(例如 GitHub、GitLab 或 Bitbucket);

  3. 賬戶設定,找到SSH,新增公鑰。

1.2.3 jenkins安裝

拉取jenkins映象:

docker pull jenkins/jenkins:lts

1.3 執行映象

執行多個映象檔案,使用docker-compose進行啟動。

docker-compose.yaml檔案:

version: '3'

networks:
  frontend:
    external: true

services:                                      # 容器
  docker_jenkins:
    user: root                                 # root許可權
    restart: always                            # 重啟方式
    image: jenkins/jenkins:lts                 # 使用的映象
    container_name: jenkins                    # 容器名稱
    environment:
      - TZ=Asia/Shanghai
      #- "JENKINS_OPTS=--prefix=/jenkins_home"  # 自定義 jenkins 訪問字首(上下文context)

    ports:                                     # 對外暴露的埠定義
      - 8080:8080
      - 50000:50000

    volumes:                                   # 卷掛載路徑
      - /docker/jenkins_home/:/var/jenkins_home     # 掛載到容器內的jenkins_home目錄
      - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
      
      
  docker_nginx_dev:                            # nginx-dev環境
    restart: always
    image: nginx
    container_name: nginx_dev
    ports:
      - 80:80
      - 443:443
    volumes:
      - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf #nginx預設配置檔案
      - /docker/html:/usr/share/nginx/html # 靜態資原始檔
      - /docker/nginx/logs:/var/log/nginx # 日誌檔案
      - /docker/nginx/conf/conf.d:/etc/nginx/conf.d # nginx配置檔案,用於單獨配置

需要新建資料夾:

mkdir /docker           
mkdir /docker/compose    
mkdir /docker/jenkins_home   
mkdir /docker/nginx      
mkdir /docker/nginx/conf 
mkdir /docker/nginx/conf/conf.d 
mkidr /docker/nginx/logs
mkdir /docker/html

進入/docker/compose/執行docker-compose up -d啟動容器。使用docker ps -a可檢視容器是否執行。

安裝版本如下:

  • Docker version:26.1.4

  • Docker Compose version 1.29.2

  • GIt version:1.8.3.1

  • Nginx version:1.27.0

  • Jenkins version:2.452.2

2. jenkins配置

2.1 初始化啟動

訪問伺服器:8080

Docker部署Jenkins搭建前端構建環境

伺服器輸入cat /docker/jenkins_home/secrets/initialAdminPassword獲取密碼登入。

登入後,選擇安裝推薦的外掛

Docker部署Jenkins搭建前端構建環境

等待安裝完成即可,設定自己的登入名和密碼。

2.2 模組介紹

進入系統管理,介紹下主要模組:

Docker部署Jenkins搭建前端構建環境

  1. 系統配置:主要配置jenkins訪問路徑,構建數量設定ssh Server 需要訪問的主機憑證等。ssh可以使用賬號密碼或者使用憑證登入

Docker部署Jenkins搭建前端構建環境

  1. 全域性工具配置:如果安裝了外掛,對應外掛的內容在這裏配置,可以配置NodeJS版本,為後面構建環境提供node環境

Docker部署Jenkins搭建前端構建環境

  1. 外掛管理:增刪改查外掛

Docker部署Jenkins搭建前端構建環境

  1. 憑據管理:主要用作git的拉取許可權

Docker部署Jenkins搭建前端構建環境

使用git的賬號密碼

Docker部署Jenkins搭建前端構建環境 配置完成後全域性就可以使用。

2.3 安裝外掛

使用預設配置後,需要下載的幾個外掛:

  1. Git Parameter Plug-In:用於構建時分支選擇

  2. NodeJS Plugin:node環境版本配置

  3. Publish Over SSH:上傳伺服器

2.4 配置構建專案

接下來介紹構建的配置步驟:

2.4.1 新建一個任務,選擇自由風格

Docker部署Jenkins搭建前端構建環境

2.4.2 引數化構建過程設定

需要安裝Git Parameter外掛纔會有,這是新增引數,引數名後面會用到。 Docker部署Jenkins搭建前端構建環境

構建時會有:

Docker部署Jenkins搭建前端構建環境

2.4.3 原始碼管理設定

全域性的憑據這裏可以選擇到,$BRANCH是上面設定的git引數名稱

Docker部署Jenkins搭建前端構建環境

2.4.4 構建環境

構建環境在Provide Node & npm bin/ folder to PATH選擇node版本 Docker部署Jenkins搭建前端構建環境

2.4.5 Build Steps

根據自身專案配置打包命令

Docker部署Jenkins搭建前端構建環境

這裏需要說明下,上方配置的git引數,例如是否每次需要安裝依賴,可以透過shell指令碼進行判斷是否安裝。

bash複製程式碼#!/bin/bash node -v  npm -v  if [ $pnpmInstall == 'true' ]  then     echo "安裝依賴包"     rm -rf node_modules     npm i  else     echo "跳過依賴包安裝" fi npm run build # 如果需要刪除原打包檔案,使用壓縮包傳遞,進入伺服器再解壓 tar -zcvf dist.tar ./dist

2.4.6 構建後操作

最後一步,傳送到伺服器。這一步也可放在上面一步,這個看個人選擇。

這裏使用外掛Publish Over SSH,在系統配置中新增了ssh伺服器連結。新增構建步驟,選擇Send files or execute commands over SSH

Docker部署Jenkins搭建前端構建環境

選擇已經存在的SSH Server

Docker部署Jenkins搭建前端構建環境

注意:

原始檔是當前專案的根目錄的位置,打包後文件為dist 所有設定為dist/**,如果傳送過去只需要dist檔案下的內容,則Remove prefix需要填dist,相當於移除字首dist

遠端伺服器資料夾當前目錄已經設定為/,如果部署資料夾為/docker/html/,就直接寫

Docker部署Jenkins搭建前端構建環境

這種方式只考慮傳輸,沒有考慮刪除老的打包檔案。需要打包後生成壓縮檔案,

bash複製程式碼npm run build # 生成壓縮包 tar -zcvf dist.tar ./dist

傳輸需要更改為

Docker部署Jenkins搭建前端構建環境

至此,設定已經全部完成。

2.4.7 構建操作

進入對應專案,點選Build with Parameters,選擇對應分支,是否需要安裝依賴。 Docker部署Jenkins搭建前端構建環境

構建日誌:

Docker部署Jenkins搭建前端構建環境

進入伺服器檢視,打包檔案已傳輸成功:

Docker部署Jenkins搭建前端構建環境

到這一步,前端構建環境已搭建成功。

總結

最後總結一下:本文使用docker搭建Jenkins+Nginx前端構建環境。主要記錄下搭建的過程,暫時未考慮回滾操作。

如有錯誤,請指正O^O!

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.