“Jenkins自动化构建和部署例子”的版本间的差异
跳到导航
跳到搜索
(→.net) |
|||
第39行: | 第39行: | ||
=前端 nodejs jenkins之自动打包构建nodejs应用= | =前端 nodejs jenkins之自动打包构建nodejs应用= | ||
+ | |||
+ | |||
+ | [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应用 ] |
2021年7月5日 (一) 12:58的版本
目录
站内源码
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应用
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
使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用
Jenkins一键打包部署Spring Boot 应用的Docker镜像
Java tomcat
和xk的一样喽 Jenkins自动部署发布Java代码(完整教程
Docker+Jenkins+Gitlab+Django应用部署实践
Docker+Jenkins+Gitlab+Django应用部署实践