Jenkins如何使用DockerFile自动部署Java项目

Jenkins下用DockerFile自动部署Java(SpringBoot)项目,简单自用,勿喷

一、Jenkins构建Java(SpringBoot)项目

新建-构建一个Maven项目

需要提一下,现在新安装的没有这个选项,需要在插件里安装一下 Maven Integration

java配置,其他配置查看以前文章

以上配置即可配置完成

二、发布到服务器,DockerFile部署自动构建

Publish SSH配置

这里在目标服务器上放了个shell命令,我这里的web是做了个Nginx的负载均衡,所以路径方面自行修改

Dockerfile配置文件,这里就不介绍了

FROM java:8   #java1.8基础镜像
VOLUME /tmp   #创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
MAINTAINER test  #作者名称
ADD web-0.0.1-SNAPSHOT.jar test/test_web0.jar #复制jar到test下且重命名为test_web0.jar
EXPOSE 8506   #容器开放端口
ENTRYPOINT ["java","-jar","-Djava.security.egd=file:/dev/.urandom","test/test_web0.jar"].
#容器执行命令

删除、重载镜像容器等操作shell,这样做感觉不是太好,以后有更好的办法在解决

#!/bin/bash -l
docker stop test_web0;       #停止容器
docker rm test_web0;        #删除容器
docker rmi test/test_web0;      #删除镜像
cd /usr/local/wwwroot/test_web/test_web0;   #进入目录
docker build -t test/test_web0.;     #构建镜像 .为当前目录的dockerfile
docker run -t -d --name test_web0-p 192.168.2.1:8506:8506 test/test_web0; #创建容器

到这jar包就可以访问了

三、简单的nginx负载均衡(docker下,可略)

这里的前提是我们已经做好了3个web站点

首先下载nginx镜像

docker images nginx

自定义一个目录,写一个新的nginx.conf

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid  /var/run/nginx.pid;

events {
 worker_connections 1024;
}

http {
 include  /etc/nginx/mime.types;
 default_type application/octet-stream;

 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for"';

 access_log /var/log/nginx/access.log main;

 sendfile  on;
 #tcp_nopush  on;

 keepalive_timeout 65;

 #gzip on;

	proxy_redirect   off;
	proxy_set_header  Host $host;
	proxy_set_header  X-Real-IP $remote_addr;
	proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
	client_max_body_size 10m;
	client_body_buffer_size 128k;
	proxy_connect_timeout 5s;
	proxy_send_timeout  5s;
	proxy_read_timeout  5s;
	proxy_buffer_size  4k;
	proxy_buffers   4 32k;
	proxy_busy_buffers_size 64k;
	proxy_temp_file_write_size 64k;

	upstream tomcat {      #配置如下,3个WEB
		server 192.168.2.1:9006;
		server 192.168.2.2:9016;
		server 192.168.2.3:9026;
	}
	server {         #集中在一个ip
  listen  9999;
  server_name 192.168.2.1;
  location / {
   proxy_pass http://tomcat;
   index index.html index.htm;
  } 

 }

 include /etc/nginx/conf.d/*.conf;
}

配置完运行

docker run -it -d --name n1 -v /user/n1/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx

还可以用keepalived做成高可用的负载均衡,以后再说

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 基于Docker+Jenkins实现自动化部署的方法

    使用码云搭建Git代码存储仓库 https://gitee.com/login 使用码云创建私有私有git仓库 将本地springboot项目上传到git仓库中 基于Docker安装Jenkins环境 1.使用docker 安装jenkins docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 2.访问jenkins地址 8080 注意:第一次启动的时候正在加载j

  • 基于python调用jenkins-cli实现快速发布

    下载jenkins-cli.jar 登录jenkins页面,进入[系统管理]-[jenkins命令行接口],点击截图中内容即可下载jar包文件. 编写jks-autodeploy.py文件,内容如下: #!/usr/bin/python3 #coding:utf8 import os import time curtime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) url="http://172.16.4.83:

  • docker-compose部署配置jenkins的详细教程

    docker-compose部署配置jenkins  一.docker-compose文件 version: '3.1' services: jenkins: image: jenkins/jenkins:lts volumes: - /data/jenkins/:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /usr/lib/x86_64-lin

  • linux Jenkins配置salve节点实现过程图解

    前言: Jenkins的Master-Slave分布式架构主要是为了解决Jenkins单点构建任务多.负载较高.性能不足的场景.Master-Slave相当于Server和Agent的概念.Master提供web接口让用户 来管理job和Slave,job可以运行在Master本机或者被分配到Slave上运行构建.一个Master(Jenkins服务所在机器)可以关联多个Slave用来为不同的job或相同的job的不同配置来 配置前的准备: master对salve做免密登录. 1.master

  • 使用Java实现构建jenkins的多个job并返回构建结果示例

    背景: 使用java实现jenkins构建很简单,但是如何确定什么时候job已经构建完成才是关键,而且要实现多个job并行构建. 分析: 我有一篇文章提到过使用java实现jenkins构建,但是获取的结果是最后一次构建的结果,不能实时获取构建结果.实时获取构建结果有个关键的点,在于他会根据构建的版本号获取当前版本号的结果,如果对应版本号的结果为空则证明还在构建过程中,按照这个思路我们就可以进行编码了. 1.判断指定构建版本号的job是否执行完; 2.根据是否构建完成获取构建结果; /** *

  • jenkins 构建项目之 pipeline基础教程

    一.pipeline 简介 ​pipeline ,简单来说,就是一套运行在 jenkins 上的工作流框架.将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程 编排 和 可视化 的工作. 二.pipeline 有哪些好处 代码:pipeline 以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程. 持久:无论是计划内的还是计划外的服务器重启,pipeline 都是可以恢复的. 可停止:pipeline 可接受交互式输入,以确定是否继续执行 p

  • 基于jenkins构建结果企业微信提醒

    每当jenkin在构建之后我们想把构建结果SUCCESS/FAILURE或者其他信息通知给其他人,也许有人会说,不是有邮件提醒吗?但是我这里的环境邮件提醒的话所被通知者并不会第一时间去阅读,所以我们用"钉钉","企业微信"来第一时间去通知你想通知的小伙伴们. 因为我这里的环境用的是企业微信所以本文都是基于企业微信来说的,不过在钉钉上也可以使用,也可以利用钉钉在jenkins上的插件,那样更方便些. 进入正题 我们要获得jenkin的构建结果是SUCCESS还是FAI

  • Jenkins发送测试报告邮件过程详解

    1.安装插件 Email Extension Plugin 2.设置Extended E-mail Notification a."系统管理"--"系统设置".配置Extended E-mail Notification--"高级" 备注: QQ邮箱开启IMAP/SMTP服务:设置--账户 QQ邮箱服务器端口号 b.系统管理员地址要设置成和发送邮件的地址一致,不然发送邮件会失败 3.设置邮件通知 "系统管理"--"系

  • Jenkins如何使用DockerFile自动部署Java项目

    Jenkins下用DockerFile自动部署Java(SpringBoot)项目,简单自用,勿喷 一.Jenkins构建Java(SpringBoot)项目 新建-构建一个Maven项目 需要提一下,现在新安装的没有这个选项,需要在插件里安装一下 Maven Integration java配置,其他配置查看以前文章 以上配置即可配置完成 二.发布到服务器,DockerFile部署自动构建 Publish SSH配置 这里在目标服务器上放了个shell命令,我这里的web是做了个Nginx的负

  • Jenkins自动部署SpringBoot项目实践教程

    目录 1.Jenkins安装 2.Jenkins插件安装 3.点击添加凭据 4.Jenkins环境配置 4.1.全局配置 4.2.系统配置 5.Jenkins自动部署SpringBoot项目 6.遇到问题 7.用到的命令 1.Jenkins安装 下载jenkins安装包,maven安装包:打开xftp将安装包上传到服务器:弄maven镜像:进入maven的conf文件夹,vim打开setting.xml文件添加阿里云镜像:wq!保存退出. <!-- 阿里镜像仓库 --> <mirrors

  • Jenkins+Maven+SVN自动化部署java项目

    安装Jenkins 提示:首先Jenkins安装方式有2中,一种是yum安装,另一种是使用war的方式进行安装(war就需要安装tomcat) 官方文档:https://pkg.jenkins.io/redhat/ 如果我们想使用war包的方式可以直接下载war包 Jenkins访问地址:localhost:8080/jenkins 新版本的jenkins为了保证安全,在安装之后有一个锁,需要设置密码之后才可以解锁 我们选择推荐安装即可 安装插件中 设置管理员账号密码 登陆jenkins 安装m

  • Docker部署java项目的详细步骤(利用Dockerfile方式)

    目录 前言 1. 首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的linux和jar包上传进去 2. 创建一个名为 Dockerfile文件 3. 以上命令配置完成后,即可输入命令进行build,然后回车 4 . 启动该容器 5. 访问地址 总结 前言 如何将java项目部署到Docker中呢,这里以一个springboot为例 以下命令全部都是以linux为基础的 1. 首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的li

  • Gitlab-runner+Docker实现自动部署SpringBoot项目

    目录 1.环境要求 当前我的服务版本 2.主要流程 3.GitlabRunner 安装和注册 3.1 安装 总结一共就2个步骤: 1.添加gitlab官方库: 2.命令安装: 3.2 开始注册 4.制作脚本! 重要!!! 3个文件位置图 .gitlab-ci.yml 5.测试 6.常见问题 本文基于Gitlab CI/CD及Docker快速实现项目的自动部署. 注意:本文较长,浏览需要12分钟左右. 1.环境要求 以下服务器的操作系统均为Centos7 服务器A:Gitlab 服务器B:Gitl

  • 手动部署java项目到k8s中的实现

    目录 前言 1. 生成Demo项目 2. 配置Docker环境 3. 配置k8s 3.1 编写deploy.yaml文件 3.2 启动调度 4. 验证 4.1 查看pod 4.2 访问系统 5. k8s配置文件参数详解 前言 Java项目在开发调试的过程中都需要进行各种环境的安装部署,在之前我们使用虚拟机部署时都是通过在机器上执行命令或者配置Jekins脚本自动化部署.但在容器环境下进行高可用的进行项目的安装部署就需要使用容器化技术跟k8s的调度执行了. 一般在正式环境下我们都会有以下几部分构成

  • k8s部署java项目的实现

    下载jar的包 [root@master test]# wget https://dl.halo.run/release/halo-1.4.16.jar [root@master ~]# ls anaconda-ks.cfg flannel.yml halo-1.4.16.jar init [root@master ~]# 编写Dockerfile并制作镜像 [root@master ~]# mkdir -p test/files [root@master ~]# mv halo-1.4.16.

  • 关于weblogic部署Java项目的包冲突问题的解决

    我们可能会用各种应用服务部署我们的Java应用,比如Tomcat.WAS.weblogic等.Tomcat和WAS可能会比较少遇到一些奇怪的问题,但是用weblogic部署项目则经常遇到一些比如包冲突问题,路径问题等奇怪但又常见的问题. 今天我就讲讲关于weblogic部署Java项目包冲突的问题.下面我举个例子: 当我在weblogic部署Java项目之后,启动没报任何错,没有异常.但是当我操作某个功能的时候页面就报错了: 后台报了这个错: Root cause of ServletExcep

  • 使用docker部署java项目运行环境的实现步骤

    目录 一.环境准备 二.配置网络 三.开放端口 四.安装jdk 五.安装docker 六.运行环境搭建 五.启动java项目 一.环境准备 1. CentOS-7-x86_64-DVD-2003.iso2. docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm3. emqx-4.2.6.tar4. influxdb-1.7-alpine.tar5. mysql-5.7.tar6. reids-6-alpine.tar7. xshell (连接centos7)8

  • jenkins+maven+svn自动部署和发布的详细图文教程

    Jenkins Jenkins是一个开源的.可扩展的持续集成.交付.部署的基于web界面的平台.允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成. 通常我们使用Jenkins主要实现以下功能: 持续集成指的是,频繁地(一天多次)将代码集成到主干.将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误. 持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审.如果评审通过,代码就进入生产阶段. 正文开始 博主前几个月刚被忽悠到一

随机推荐