Jenkins如何使用DockerFile自動部署Java項目
Jenkins下用DockerFile自動部署Java(SpringBoot)項目,簡單自用,勿噴
一、Jenkins構建Java(SpringBoot)項目
新建-構建一個Maven項目
需要提一下,現(xiàn)在新安裝的沒有這個選項,需要在插件里安裝一下 Maven Integration
java配置,其他配置查看以前文章
以上配置即可配置完成
二、發(fā)布到服務器,DockerFile部署自動構建
Publish SSH配置
這里在目標服務器上放了個shell命令,我這里的web是做了個Nginx的負載均衡,所以路徑方面自行修改
Dockerfile配置文件,這里就不介紹了
FROM java:8 #java1.8基礎鏡像 VOLUME /tmp #創(chuàng)建/tmp目錄并持久化到Docker數(shù)據(jù)文件夾,因為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"]. #容器執(zhí)行命令
刪除、重載鏡像容器等操作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)建容器
到這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做成高可用的負載均衡,以后再說
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
BiConsumer接口中的方法andThen?accept使用詳解
這篇文章主要為大家介紹了BiConsumer接口中的方法andThen?accept使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07解決異常FileNotFoundException:class path resource找不到資源文件的問題
今天小編就為大家分享一篇關于解決異常FileNotFoundException:class path resource找不到資源文件的問題,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12如何自定義Jackson序列化?@JsonSerialize
這篇文章主要介紹了如何自定義Jackson序列化?@JsonSerialize,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12使用GraalVM如何將SpringBoot項目打包成exe
本文介紹了如何使用GraalVM和Maven將Spring Boot項目打包成可執(zhí)行文件的步驟,并詳細解釋了在打包過程中遇到的常見錯誤及其解決方法2024-12-12