docker+jenkins前端react项目自动化部署

一、环境配置

服务器版本:centos8
docker版本:24.0.5
jenkins版本:2.420
react版本:18.2

二、docker内安装jenkins

  • 2.1 映射jenkins内到宿主机docker环境
docker run -d -u root -p 8080:8080 -p 50000:50000 -v /home/jenkins_home:/var/jenkins_home -v /home/localtime:/etc/localtime --name MyJenkins jenkins/jenkins
# 这三个是映射宿主机docker
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker 
-v /etc/docker:/etc/docker

三、配置jenkins

  • 配置gitee
    参考gitee官方教程Jenkins插件
  • jenkins 安装
    -
  • 配置项目流水线

在这里插入图片描述
jenkins配置远程ssh

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                git branch: 'master', credentialsId: 'jenkins里的凭证', url: 'git地址'
            }
        }
        stage('删除镜像') {
            steps {
                sh 'docker --version'
                 sh 'docker rmi hdzkui > out.log 2>err.log  &'
            }
        }
        stage('构建镜像') {
            steps {
               sh 'docker build -t hdzkui .'
            }
        }
       stage('打包镜像') {
            steps {
               sh 'docker save -o hdzkui.tar hdzkui:latest'
            }
        }
          stage('宿主机执行') {
            steps {
             sshPublisher(publishers: [sshPublisherDesc(configName: 'dockerssh', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
            docker rm -f hdzkui || true> out.log 2>err.log
            docker rmi hdzkui:latest || true > out.log 2>err.log
            docker load -i hdzkui.tar
            docker images
            docker run --name hdzkui -it -d -p 4005:80 hdzkui:latest''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: './', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'hdzkui.tar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
            }    
        }
    
    }
}

四、jenkins配置ssh

  • 安装Publish over SSH
  • 在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

五、项目中创建Dockfile

FROM node:14.18.0 AS builder

# 移动到工作目录:/home/www
WORKDIR /home/www

# 将代码复制到容器中
COPY . .

# 安装依赖,打包
RUN npm -v
RUN npm config set registry https://registry.npmmirror.com/
RUN npm install cnpm -g --registry=https://registry.npmmirror.com/
RUN cnpm i
RUN npm run build

###################
# 接下来创建一个nginx镜像,将dist内容复制进去
###################

FROM nginx

WORKDIR /usr/share/nginx/html
# 从builder镜像中把/dist 拷贝到当前目录
COPY --from=builder /home/www/dist .

EXPOSE 80

六、更改项目流水线配置

pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                git branch: 'master', credentialsId: '凭证', url: '仓库地址'
            }
        }
        stage('停止镜像'){
            steps{
                 sh 'docker --version'
                sh 'docker rm -f aaa'
            }
        }
        stage('删除镜像') {
            steps {
                 sh 'docker rmi aaa'
            }
        }
        stage('构建镜像') {
            steps {
               sh 'docker build -t aaa .'
            }
        }
        stage('删除临时镜像') {
            steps {
               sh 'docker rmi $(docker images -q -f dangling=true)'
            }
        }


       stage('运行镜像') {
            steps {
               sh 'docker run -d -p 4005:80 --name aaa aaa:latest'
              
            }
        }

    
    }
}

参考:
https://blog.csdn.net/TanHao8/article/details/130779041
https://blog.csdn.net/yueyue763184/article/details/129941605

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值