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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。