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.jarEXPOSE 8506 #容器开放端口ENTRYPOINT ['java','-jar','-Djava.security.egd=file:/dev/.urandom','test/test_web0.jar'].#容器执行命令
删除、重载镜像容器等操作shell,这样做感觉不是太好,以后有更好的办法在解决
#!/bin/bash -ldocker 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.; #构建镜像 .为当前目录的dockerfiledocker 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个WEBserver 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做成高可用的负载均衡,以后再说
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章: