Jenkins如何使用DockerFile自動(dòng)部署Java項(xiàng)目
Jenkins下用DockerFile自動(dòng)部署Java(SpringBoot)項(xiàng)目,簡(jiǎn)單自用,勿噴
一、Jenkins構(gòu)建Java(SpringBoot)項(xiàng)目
新建-構(gòu)建一個(gè)Maven項(xiàng)目

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


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

以上配置即可配置完成
二、發(fā)布到服務(wù)器,DockerFile部署自動(dòng)構(gòu)建
Publish SSH配置

這里在目標(biāo)服務(wù)器上放了個(gè)shell命令,我這里的web是做了個(gè)Nginx的負(fù)載均衡,所以路徑方面自行修改

Dockerfile配置文件,這里就不介紹了
FROM java:8 #java1.8基礎(chǔ)鏡像 VOLUME /tmp #創(chuàng)建/tmp目錄并持久化到Docker數(shù)據(jù)文件夾,因?yàn)镾pring Boot使用的內(nèi)嵌Tomcat容器默認(rèn)使用/tmp作為工作目錄 MAINTAINER test #作者名稱(chēng) ADD web-0.0.1-SNAPSHOT.jar test/test_web0.jar #復(fù)制jar到test下且重命名為test_web0.jar EXPOSE 8506 #容器開(kāi)放端口 ENTRYPOINT ["java","-jar","-Djava.security.egd=file:/dev/.urandom","test/test_web0.jar"]. #容器執(zhí)行命令

刪除、重載鏡像容器等操作shell,這樣做感覺(jué)不是太好,以后有更好的辦法在解決
#!/bin/bash -l docker stop test_web0; #停止容器 docker rm test_web0; #刪除容器 docker rmi test/test_web0; #刪除鏡像 cd /usr/local/wwwroot/test_web/test_web0; #進(jìn)入目錄 docker build -t test/test_web0.; #構(gòu)建鏡像 .為當(dāng)前目錄的dockerfile docker run -t -d --name test_web0-p 192.168.2.1:8506:8506 test/test_web0; #創(chuàng)建容器

到這jar包就可以訪問(wèn)了
三、簡(jiǎn)單的nginx負(fù)載均衡(docker下,可略)
這里的前提是我們已經(jīng)做好了3個(gè)web站點(diǎn)
首先下載nginx鏡像
docker images nginx
自定義一個(gè)目錄,寫(xiě)一個(gè)新的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個(gè)WEB
server 192.168.2.1:9006;
server 192.168.2.2:9016;
server 192.168.2.3:9026;
}
server { #集中在一個(gè)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;
}
配置完運(yùn)行
docker run -it -d --name n1 -v /user/n1/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx
還可以用keepalived做成高可用的負(fù)載均衡,以后再說(shuō)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA錯(cuò)誤類(lèi)結(jié)果類(lèi)和分頁(yè)結(jié)果類(lèi)代碼詳解
這篇文章主要介紹了JAVA錯(cuò)誤類(lèi)結(jié)果類(lèi)和分頁(yè)結(jié)果類(lèi)代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
BiConsumer接口中的方法andThen?accept使用詳解
這篇文章主要為大家介紹了BiConsumer接口中的方法andThen?accept使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
解決異常FileNotFoundException:class path resource找不到資源文件的問(wèn)題
今天小編就為大家分享一篇關(guān)于解決異常FileNotFoundException:class path resource找不到資源文件的問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
springboot+maven快速構(gòu)建項(xiàng)目的示例代碼
本篇文章主要介紹了springboot+maven快速構(gòu)建項(xiàng)目的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
java如何創(chuàng)建一個(gè)jdbc程序詳解
使用Java程序來(lái)操作數(shù)據(jù)庫(kù),后者更加直接的話就是使用Java程序來(lái)發(fā)送SQL語(yǔ)句的技術(shù)稱(chēng)之為:JDBC。下面這篇文章主要給大家介紹了關(guān)于利用java如何創(chuàng)建一個(gè)jdbc程序的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-11-11
MybatisPlus搭建項(xiàng)目環(huán)境及分頁(yè)插件
Mybatis-Plus(簡(jiǎn)稱(chēng)MP)是一個(gè)Mybatis的增強(qiáng)工具,在Mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關(guān)于MybatisPlus搭建項(xiàng)目環(huán)境及分頁(yè)插件的相關(guān)資料,需要的朋友可以參考下2022-11-11
如何自定義Jackson序列化?@JsonSerialize
這篇文章主要介紹了如何自定義Jackson序列化?@JsonSerialize,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
使用GraalVM如何將SpringBoot項(xiàng)目打包成exe
本文介紹了如何使用GraalVM和Maven將Spring Boot項(xiàng)目打包成可執(zhí)行文件的步驟,并詳細(xì)解釋了在打包過(guò)程中遇到的常見(jiàn)錯(cuò)誤及其解決方法2024-12-12
IDEA中實(shí)現(xiàn)springboot熱部署方式
在IDEA中實(shí)現(xiàn)SpringBoot的熱部署可以通過(guò)修改設(shè)置來(lái)完成,首先在設(shè)置中搜索Compiler,并勾選Build project automatically,然后進(jìn)入Advanced Settings,勾選Allow auto-make to start even if developed application is currently running2024-09-09

