“Jenkins自动化构建和部署例子”的版本间的差异
跳到导航
跳到搜索
(→站内源码) |
|||
(未显示同一用户的12个中间版本) | |||
第1行: | 第1行: | ||
+ | |||
+ | APP 打包,静态代码检查,Sonar 平台搭建和维护等工作 | ||
+ | |||
=站内源码 = | =站内源码 = | ||
[[代码发布]] | [[代码发布]] | ||
第39行: | 第42行: | ||
=前端 nodejs jenkins之自动打包构建nodejs应用= | =前端 nodejs jenkins之自动打包构建nodejs应用= | ||
+ | |||
+ | docker化 php sping boot node.js 全部可以参考这个 | ||
+ | [https://segmentfault.com/a/1190000022277946?utm_source=sf-similar-article jenkins+docker部署nodejs程序] | ||
+ | ==dockerfile== | ||
+ | <pre> | ||
+ | 构建镜像需要有dockerfile,这个dockerfile其实就是docker在构建时,根据这个文件的内容,打包镜像,看一下我那个项目的dockerfile可以对照参考,很简单 | ||
+ | |||
+ | # 基于某个镜像,来构建新的镜像,我们是nodejs项目,选择一个带有nodejs环境的镜像 | ||
+ | FROM node:13.5.0-buster-slim | ||
+ | # 打一个标签, | ||
+ | LABEL zhangchao [邮箱名] | ||
+ | # 设置环境变量,nodejs代码中可以取到这个环境变量,如果没有可不写 | ||
+ | ENV NODE_ENV=production | ||
+ | # 创建一个代码目录 | ||
+ | RUN mkdir -p /usr/src/webapp | ||
+ | # 将代码拷贝到这个目录中 | ||
+ | COPY . /usr/src/webapp | ||
+ | # 设置工作目录 | ||
+ | WORKDIR /usr/src/webapp | ||
+ | # 安装nodejs项目依赖 | ||
+ | RUN /bin/sh -c 'cd /usr/src/webapp/ && \ | ||
+ | npm install --unsafe-perm' | ||
+ | # 对外暴露3000端口 | ||
+ | EXPOSE 3000 | ||
+ | # 启动nodejs服务 | ||
+ | CMD node server.js | ||
+ | |||
+ | </pre> | ||
+ | ==接着就是配置构建了,选择执行shell== | ||
+ | <pre> | ||
+ | 接着就是配置构建了,选择执行shell | ||
+ | |||
+ | # 进入项目目录 | ||
+ | cd /var/jenkins_home/workspace/[填入你的git仓库名] | ||
+ | # tag名称 | ||
+ | tagName=$Tag | ||
+ | # docker仓库,可以在阿里云镜像仓库,申请自己的镜像仓库 | ||
+ | REPOSITORY=[镜像仓库的域名]/[镜像仓库的命名空间]/[镜像仓库的名称]:jenkins-$tagName | ||
+ | # 构建镜像,注意后面有个. 代表使用当前目下下的dockerfile,后面会说dockerfile怎么写 | ||
+ | docker build -t $REPOSITORY . | ||
+ | # 如果是私有的镜像仓库,例如我的阿里云镜像仓库,需要登录后才能push,如果公有的不需要这步 | ||
+ | docker login -u [用户名] -p [密码] [镜像仓库域名] | ||
+ | # 将构建好的镜像,推送到远程的镜像仓库 | ||
+ | docker push $REPOSITORY | ||
+ | # 删除本地构建的镜像 | ||
+ | docker rmi -f $REPOSITORY | ||
+ | </pre> | ||
+ | ==SSH Site,填入远程执行的脚本== | ||
+ | <pre> | ||
+ | SSH Site,填入远程执行的脚本 | ||
+ | |||
+ | # 设置tagName | ||
+ | tagName=$Tag | ||
+ | # 登录私有仓库,如果是公有仓库,这步不用写 | ||
+ | docker login -u [用户名] -p [密码] [镜像仓库域名] | ||
+ | # 拉取远程镜像 pull后面跟的是仓库名称:tag名称 | ||
+ | docker pull [镜像仓库的域名]/[镜像仓库的命名空间]/[镜像仓库的名称]:jenkins-$tagName | ||
+ | # 根据容器名称查找容器id | ||
+ | containerId=`docker ps -a | grep [上一版启动的容器名称] | awk '{print $1}' ` | ||
+ | # 根据容器名称查找镜像名称 | ||
+ | imageName=`docker ps -a | grep [上一版启动的容器名称] | awk '{print $2}' ` | ||
+ | # 如果容器id存在就停止掉旧容器运行,并删除掉旧的容器和镜像 | ||
+ | if [ -n "$containerId" ]; then | ||
+ | docker stop $containerId | ||
+ | docker rm $containerId | ||
+ | docker rmi -f $imageName | ||
+ | fi | ||
+ | # 运行新的镜像,最后面其实是仓库名称:tag名 | ||
+ | docker run -d --name [容器名称] -p 3000:3000 [镜像仓库的域名]/[镜像仓库的命名空间]/[镜像仓库的名称]:jenkins-$tagName | ||
+ | |||
+ | 点击保存,我们的构建过程就配置好了,可以点击build with params,选择git仓库的tag进行构建了,有任何疑问可以在评论中提出来,看到后我会回复,希望你们能一次成功。 | ||
+ | </pre> | ||
[https://www.cnblogs.com/vipzhou/p/7890016.html jenkins学习之自动打包构建nodejs应用 ] | [https://www.cnblogs.com/vipzhou/p/7890016.html jenkins学习之自动打包构建nodejs应用 ] | ||
第50行: | 第125行: | ||
[https://blog.51cto.com/wzlinux/2491394 docker 中运行的 jenkins 使用 npm 构建 Node.js 应用] | [https://blog.51cto.com/wzlinux/2491394 docker 中运行的 jenkins 使用 npm 构建 Node.js 应用] | ||
+ | |||
+ | [https://juejin.cn/post/6971630514742493197 jenkins+docker+gogs前端自动化部署 ] | ||
=后端= | =后端= | ||
第56行: | 第133行: | ||
[[category:ops]] [[category:devops]] | [[category:ops]] [[category:devops]] | ||
+ | |||
+ | == Java spring boot== | ||
+ | [https://zhuanlan.zhihu.com/p/354677279 SpringBoot项目打包+shell脚本部署实践] | ||
+ | |||
+ | [https://zhuanlan.zhihu.com/p/382228218 Docker+Jenkins+GitLab+Maven+SpringBoot/SpringCloud实现自动化构建部署实战] | ||
+ | |||
+ | [https://cloud.tencent.com/developer/article/1727325 使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用] | ||
+ | |||
+ | [https://blog.csdn.net/hzj_java/article/details/108006489 Jenkins一键打包部署Spring Boot 应用的Docker镜像] | ||
+ | |||
+ | == golang== | ||
+ | |||
+ | <pre> | ||
+ | # 安装 composer 组件 | ||
+ | cd $WORKSPACE/www/im.com/src | ||
+ | |||
+ | export GO111MODULE=on | ||
+ | export GOPROXY=https://goproxy.cn | ||
+ | |||
+ | # 打包 | ||
+ | /bin/bash build.sh linux | ||
+ | |||
+ | rsync -avzP --port=873 --password-file=/assword --exclude-from=/backup/upline/exclude $WORKSPACE/www/im.com/deploy [email protected]::im-proxy | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == Java tomcat== | ||
+ | |||
+ | 和xk的一样喽 | ||
+ | [https://blog.51cto.com/u_13760351/2382103 Jenkins自动部署发布Java代码(完整教程] | ||
+ | |||
+ | == Docker+Jenkins+Gitlab+Django应用部署实践 == | ||
+ | [https://juejin.cn/post/6844903758384594958 Docker+Jenkins+Gitlab+Django应用部署实践 ] | ||
+ | =docker = | ||
+ | [https://segmentfault.com/a/1190000007837054 Jenkins集成Docker镜像实现自动发布] | ||
+ | |||
+ | ==.net== | ||
+ | [https://www.cnblogs.com/liyouming/p/9989160.html .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行 ] |
2021年12月7日 (二) 08:12的最新版本
APP 打包,静态代码检查,Sonar 平台搭建和维护等工作
目录
站内源码
jenkins 使用Maven构建Java应用程序
java+maven项目+tapd+jenkins+gitlab+sonarqube+docker实现自动化持续部署
java+maven项目+tapd+jenkins+gitlab+sonarqube+docker实现自动化持续部署(超详细)
download.app
jenkins project name prod-tg-websi
* conf project
新建 自由风格的软件项目 -> geneal 丢弃旧的构建 源码管理 用git http的话就直接用上你的gitlabt用户和密码 构建 这里填写上你的 over SSH 服务器 一般在 系统管理--系统设置里面配置并起别名 一般hostname 填写IP username Remote Directory / 其它的看着办 构建 要填写的 Source files ** Remove prefix 不填写 Remote directory 你远程服务器的web目录
* 配置权限
#这样还视图自动归类功能 不错不错 记住前面不要有空格 Manage and Assign Roles --> Manage Roles --> 在他有的项目组里面 Frontend_h5 添加 prod-tg-websit| --> Manage and Assign Roles --> Assign Roles Item roles -->User/group to add 填写项目名 prod-tg-website
前端 nodejs jenkins之自动打包构建nodejs应用
docker化 php sping boot node.js 全部可以参考这个 jenkins+docker部署nodejs程序
dockerfile
构建镜像需要有dockerfile,这个dockerfile其实就是docker在构建时,根据这个文件的内容,打包镜像,看一下我那个项目的dockerfile可以对照参考,很简单 # 基于某个镜像,来构建新的镜像,我们是nodejs项目,选择一个带有nodejs环境的镜像 FROM node:13.5.0-buster-slim # 打一个标签, LABEL zhangchao [邮箱名] # 设置环境变量,nodejs代码中可以取到这个环境变量,如果没有可不写 ENV NODE_ENV=production # 创建一个代码目录 RUN mkdir -p /usr/src/webapp # 将代码拷贝到这个目录中 COPY . /usr/src/webapp # 设置工作目录 WORKDIR /usr/src/webapp # 安装nodejs项目依赖 RUN /bin/sh -c 'cd /usr/src/webapp/ && \ npm install --unsafe-perm' # 对外暴露3000端口 EXPOSE 3000 # 启动nodejs服务 CMD node server.js
接着就是配置构建了,选择执行shell
接着就是配置构建了,选择执行shell # 进入项目目录 cd /var/jenkins_home/workspace/[填入你的git仓库名] # tag名称 tagName=$Tag # docker仓库,可以在阿里云镜像仓库,申请自己的镜像仓库 REPOSITORY=[镜像仓库的域名]/[镜像仓库的命名空间]/[镜像仓库的名称]:jenkins-$tagName # 构建镜像,注意后面有个. 代表使用当前目下下的dockerfile,后面会说dockerfile怎么写 docker build -t $REPOSITORY . # 如果是私有的镜像仓库,例如我的阿里云镜像仓库,需要登录后才能push,如果公有的不需要这步 docker login -u [用户名] -p [密码] [镜像仓库域名] # 将构建好的镜像,推送到远程的镜像仓库 docker push $REPOSITORY # 删除本地构建的镜像 docker rmi -f $REPOSITORY
SSH Site,填入远程执行的脚本
SSH Site,填入远程执行的脚本 # 设置tagName tagName=$Tag # 登录私有仓库,如果是公有仓库,这步不用写 docker login -u [用户名] -p [密码] [镜像仓库域名] # 拉取远程镜像 pull后面跟的是仓库名称:tag名称 docker pull [镜像仓库的域名]/[镜像仓库的命名空间]/[镜像仓库的名称]:jenkins-$tagName # 根据容器名称查找容器id containerId=`docker ps -a | grep [上一版启动的容器名称] | awk '{print $1}' ` # 根据容器名称查找镜像名称 imageName=`docker ps -a | grep [上一版启动的容器名称] | awk '{print $2}' ` # 如果容器id存在就停止掉旧容器运行,并删除掉旧的容器和镜像 if [ -n "$containerId" ]; then docker stop $containerId docker rm $containerId docker rmi -f $imageName fi # 运行新的镜像,最后面其实是仓库名称:tag名 docker run -d --name [容器名称] -p 3000:3000 [镜像仓库的域名]/[镜像仓库的命名空间]/[镜像仓库的名称]:jenkins-$tagName 点击保存,我们的构建过程就配置好了,可以点击build with params,选择git仓库的tag进行构建了,有任何疑问可以在评论中提出来,看到后我会回复,希望你们能一次成功。
docker 中运行的 jenkins 使用 npm 构建 Node.js 应用
后端
php jenkins
Java spring boot
Docker+Jenkins+GitLab+Maven+SpringBoot/SpringCloud实现自动化构建部署实战
使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用
Jenkins一键打包部署Spring Boot 应用的Docker镜像
golang
# 安装 composer 组件 cd $WORKSPACE/www/im.com/src export GO111MODULE=on export GOPROXY=https://goproxy.cn # 打包 /bin/bash build.sh linux rsync -avzP --port=873 --password-file=/assword --exclude-from=/backup/upline/exclude $WORKSPACE/www/im.com/deploy [email protected]::im-proxy
Java tomcat
和xk的一样喽 Jenkins自动部署发布Java代码(完整教程
Docker+Jenkins+Gitlab+Django应用部署实践
Docker+Jenkins+Gitlab+Django应用部署实践