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

网友投稿 551 2022-11-24


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作为工作目录

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;

senEYLOkAfudfile 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做成高可用的负载均衡,以后再说


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Gradle的安装和IDEA集成、项目导入的详细教程
下一篇:基于jenkins构建结果企业微信提醒
相关文章

 发表评论

暂时没有评论,来抢沙发吧~