Jenkins+docker+docker-compose+maven+Nodejs自動部署前后端項目


本人服務器使用的是華為雲的彈性雲服務器,安裝CentOS 7.6

先給yum切換阿里源:

  • 備份
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 
  • 下載
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
  • 生成緩存
    yum makecache

前期准備

1、服務器安裝docker,鏈接

2、服務器安裝JDK、Tomcat及Maven鏈接

3、服務器安裝git,鏈接

5、服務器安裝jenkins,鏈接

6、服務器安裝配置docker-compose,鏈接

 

step1:持續集成后端SpringBoot項目

  1. 本地項目編輯 Dockerfile 文件
    FROM java:8
    # 項目在容器內部運行的端口
    EXPOSE 8080
    
    VOLUME /tmp
    ADD /target/diyuan-farm.jar /app.jar
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-jar","/app.jar"]

     

  2. 本地項目編輯 docker-compose.yml 文件
    version: '2'
    services:
      diyuan-farm:
        image: soldierdocker/diyuan-farm
        ports:
          # 8082為外部訪問端口 8080為內部運行端口與Dockerfile保持一致
          - "8082:8080"
        environment:
          - spring.profiles.active=prod
        # 映射文件路徑
        volumes:
          - /usr/local/projectFile/diyuan-farm/:/usr/local/projectFile/diyuan-farm/

     

  3. 項目的github地址配置Webhooks

     

     

    主要操作如下:(部分沒有勾選的值沒有截屏出來)

    Hook URL獲取方式:鏈接教程

     

  4. Jenkins新建項目

     
  5. Jenkins項目配置

     

     

     

    重點!!!!!!!!!三部曲

    構建的第一步是maven,第二步docker,順序不能錯:

     

     maven腳本命令:clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -B -V

     

  6. 如果構建的第二步使用的是阿里雲鏡像服務

    clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -B -V
    docker login --username=阿里雲用戶名 --password=阿里雲密碼 registry.cn-hangzhou.aliyuncs.com
    docker build -t registry.cn-hangzhou.aliyuncs.com/soldier-hub/diyuan-farm:latest .
    docker push registry.cn-hangzhou.aliyuncs.com/soldier-hub/diyuan-farm:latest

     

  7. 提交源碼更新或點擊立即構建的結果:

     

     成功!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

step2:持續集成前端Vue項目

ci前的准備:

  1、Jenkins服務器安裝Nodejs,鏈接

  2、Jenkins安裝Nodejs插件

    依次點擊:系統管理-》插件管理-》可選插件

    

 

     點擊直接安裝

  3、Jenkins全局配置上安裝好的Nodejs
    依次點擊:系統管理-》全局工具管理

    

  1. 本地項目編輯 Dockerfile 文件
    FROM docker.io/nginx
    
    MAINTAINER soldier <soldier_wyyx@163.com>
    
    RUN rm /etc/nginx/conf.d/default.conf
    
    ADD default.conf /etc/nginx/conf.d/
    
    COPY dist/  /usr/share/nginx/html/

     

  2. 本地項目編輯 docker-compose.yml 文件
    version: '2'
    services:
      diyuan-farm-vue:
        image: soldierdocker/diyuan-farm-vue:latest
        ports:
          # 8001為外部訪問端口
          # 8001必須與default.conf的一致
          - 8001:8001

    default.conf 文件

    server {
        # 項目在容器內部運行的端口
        listen       8001;
        server_name  diyuan-farm-vue;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

     

  3. 第三步與持續集成后端項目一樣,點擊查看
  4. 第四步與持續集成后端項目一樣,點擊查看
  5. Jenkins項目配置

     

     

     

     

     

     

    重點!!!!!!!!!三部曲

     

    shell腳本在下一步會粘貼出來

     

  6. 三部曲中的shell腳本
    node -v
    npm -v
    npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
    npm install
    npm run build

     

  7. 提交源碼更新或點擊立即構建的結果:

      成功!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

優化:配合nginx+ssl證書持續集成前端Vue項目!!!

前期准備

  1、重點-》CentOS7安裝nginx並配置ssl證書實現https,鏈接

  2、CentOS7下安裝rsync,鏈接

所有配置不變,只是修改 三部曲中的第三步

 

第三步:

rsync -az --delete ./dist/* /usr/share/nginx/html
  • 點擊立即構建,訪問域名

    成功!!!!!!!!!!!!!!!!!!!!!!!!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM