“Jenkins自动化构建和部署例子”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
 
(未显示同一用户的20个中间版本)
第1行: 第1行:
 +
 +
APP 打包,静态代码检查,Sonar 平台搭建和维护等工作
 +
 +
=站内源码 =
 +
[[代码发布]]
 +
 +
=jenkins 使用Maven构建Java应用程序=
 +
[https://www.jenkins.io/zh/doc/tutorials/build-a-java-app-with-maven/  使用Maven构建Java应用程序 ]
 +
 +
=java+maven项目+tapd+jenkins+gitlab+sonarqube+docker实现自动化持续部署=
 +
[https://juejin.cn/post/6955025879688806430#heading-66 java+maven项目+tapd+jenkins+gitlab+sonarqube+docker实现自动化持续部署(超详细) ]
  
 
=download.app=
 
=download.app=
第30行: 第41行:
 
Item roles -->User/group to add  填写项目名  prod-tg-website</pre>
 
Item roles -->User/group to add  填写项目名  prod-tg-website</pre>
  
=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.huaweicloud.com/articles/4e4228c181b8e610999badfa00ff7e4e.html Jenkins打包NodeJS项目---入门篇]
 +
 
 +
[https://my.oschina.net/mobinchao/blog/871703 Jenkins打包NodeJS项目---入门篇]
 +
 
 +
[https://blog.csdn.net/weixin_43931358/article/details/103013031 jenkins系列之使用yarn构建前端项目]
 +
 
 +
 
 
[https://blog.51cto.com/wzlinux/2491394 docker 中运行的 jenkins 使用 npm 构建 Node.js 应用]
 
[https://blog.51cto.com/wzlinux/2491394 docker 中运行的 jenkins 使用 npm 构建 Node.js 应用]
  
  [[category:ops]]
+
[https://juejin.cn/post/6971630514742493197  jenkins+docker+gogs前端自动化部署 ]
 +
 
 +
=后端=
 +
==php jenkins==
 +
[[Jenkins实现PHP持续集成部署]]
 +
 
 +
  [[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应用程序

使用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进行构建了,有任何疑问可以在评论中提出来,看到后我会回复,希望你们能一次成功。

jenkins学习之自动打包构建nodejs应用

Jenkins打包NodeJS项目---入门篇

Jenkins打包NodeJS项目---入门篇

jenkins系列之使用yarn构建前端项目


docker 中运行的 jenkins 使用 npm 构建 Node.js 应用

jenkins+docker+gogs前端自动化部署

后端

php jenkins

Jenkins实现PHP持续集成部署

Java spring boot

SpringBoot项目打包+shell脚本部署实践

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应用部署实践

docker

Jenkins集成Docker镜像实现自动发布

.net

.NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行