溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-11-06 16:55:05 來源:億速云 閱讀:1406 作者:Leah 欄目:開發(fā)技術

本篇文章為大家展示了Jenkins下用DockerFile自動部署Java(SpringBoot)項目,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一、Jenkins構建Java(SpringBoot)項目

新建-構建一個Maven項目

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

需要提一下,現(xiàn)在新安裝的沒有這個選項,需要在插件里安裝一下 Maven Integration

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

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

java配置,其他配置查看以前文章

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

以上配置即可配置完成

二、發(fā)布到服務器,DockerFile部署自動構建

Publish SSH配置

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

這里在目標服務器上放了個shell命令,我這里的web是做了個Nginx的負載均衡,所以路徑方面自行修改

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

Dockerfile配置文件,這里就不介紹了

FROM java:8   #java1.8基礎鏡像
VOLUME /tmp   #創(chuàng)建/tmp目錄并持久化到Docker數(shù)據(jù)文件夾,因為Spring Boot使用的內(nèi)嵌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"].
#容器執(zhí)行命令

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

刪除、重載鏡像容器等操作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; #創(chuàng)建容器

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

到這jar包就可以訪問了

三、簡單的nginx負載均衡(docker下,可略)

這里的前提是我們已經(jīng)做好了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做成高可用的負載均衡,以后再說

上述內(nèi)容就是Jenkins下用DockerFile自動部署Java(SpringBoot)項目,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI