Jenkins下用DockerFile自動部署Java(SpringBoot)項目


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做成高可用的負載均衡,以后再說

最后補充下容器共享目錄到宿主機

docker run -t -d --name test -v /logs/dev/:/publish/log -p 0.0.0.0:8801:8801 test/dev;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM