Jenkins如何使用DockerFile自动部署Java项目
Jenkins下用DockerFile自动部署Java(SpringBoot)项目,简单自用,勿喷
一、Jenkins构建Java(SpringBoot)项目
新建-构建一个Maven项目
需要提一下,现在新安装的没有这个选项,需要在插件里安装一下MavenIntegration
java配置,其他配置查看以前文章
以上配置即可配置完成
二、发布到服务器,DockerFile部署自动构建
PublishSSH配置
这里在目标服务器上放了个shell命令,我这里的web是做了个Nginx的负载均衡,所以路径方面自行修改
Dockerfile配置文件,这里就不介绍了
FROMjava:8#java1.8基础镜像 VOLUME/tmp#创建/tmp目录并持久化到Docker数据文件夹,因为SpringBoot使用的内嵌Tomcat容器默认使用/tmp作为工作目录 MAINTAINERtest#作者名称 ADDweb-0.0.1-SNAPSHOT.jartest/test_web0.jar#复制jar到test下且重命名为test_web0.jar EXPOSE8506#容器开放端口 ENTRYPOINT["java","-jar","-Djava.security.egd=file:/dev/.urandom","test/test_web0.jar"]. #容器执行命令
删除、重载镜像容器等操作shell,这样做感觉不是太好,以后有更好的办法在解决
#!/bin/bash-l dockerstoptest_web0;#停止容器 dockerrmtest_web0;#删除容器 dockerrmitest/test_web0;#删除镜像 cd/usr/local/wwwroot/test_web/test_web0;#进入目录 dockerbuild-ttest/test_web0.;#构建镜像.为当前目录的dockerfile dockerrun-t-d--nametest_web0-p192.168.2.1:8506:8506test/test_web0;#创建容器
到这jar包就可以访问了
三、简单的nginx负载均衡(docker下,可略)
这里的前提是我们已经做好了3个web站点
首先下载nginx镜像
dockerimagesnginx
自定义一个目录,写一个新的nginx.conf
usernginx;
worker_processes1;
error_log/var/log/nginx/error.logwarn;
pid/var/run/nginx.pid;
events{
worker_connections1024;
}
http{
include/etc/nginx/mime.types;
default_typeapplication/octet-stream;
log_formatmain'$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.logmain;
sendfileon;
#tcp_nopushon;
keepalive_timeout65;
#gzipon;
proxy_redirectoff;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
client_max_body_size10m;
client_body_buffer_size128k;
proxy_connect_timeout5s;
proxy_send_timeout5s;
proxy_read_timeout5s;
proxy_buffer_size4k;
proxy_buffers432k;
proxy_busy_buffers_size64k;
proxy_temp_file_write_size64k;
upstreamtomcat{#配置如下,3个WEB
server192.168.2.1:9006;
server192.168.2.2:9016;
server192.168.2.3:9026;
}
server{#集中在一个ip
listen9999;
server_name192.168.2.1;
location/{
proxy_passhttp://tomcat;
indexindex.htmlindex.htm;
}
}
include/etc/nginx/conf.d/*.conf;
}
配置完运行
dockerrun-it-d--namen1-v/user/n1/nginx.conf:/etc/nginx/nginx.conf--net=host--privilegednginx
还可以用keepalived做成高可用的负载均衡,以后再说
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。