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
  • 点击立即构建,访问域名

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

 

posted @ 2020-07-27 20:32  soldier_cnblogs  阅读(1092)  评论(0编辑  收藏  举报