中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

個(gè)人網(wǎng)站設(shè)計(jì)實(shí)驗(yàn)原理qq推廣工具

個(gè)人網(wǎng)站設(shè)計(jì)實(shí)驗(yàn)原理,qq推廣工具,40個(gè)常見的html標(biāo)簽及含義,編程開發(fā)博主介紹:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星城市賽道TOP20、專注于前端流行技術(shù)框架、Java后端技術(shù)領(lǐng)域、項(xiàng)目實(shí)戰(zhàn)運(yùn)維以及GIS地理信息領(lǐng)域。 🍅文末獲取源碼下載地址🍅 👇🏻 精彩專欄推薦訂閱👇🏻…

??博主介紹:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星城市賽道TOP20、專注于前端流行技術(shù)框架、Java后端技術(shù)領(lǐng)域、項(xiàng)目實(shí)戰(zhàn)運(yùn)維以及GIS地理信息領(lǐng)域。

🍅文末獲取源碼下載地址🍅

👇🏻 精彩專欄推薦訂閱👇🏻 歡迎點(diǎn)贊收藏評(píng)論拍磚........

【Docker Swarm總結(jié)】《容器技術(shù) Docker+K8S專欄》?

【uniapp+uinicloud多用戶社區(qū)博客實(shí)戰(zhàn)項(xiàng)目】《完整開發(fā)文檔-從零到完整項(xiàng)目》?

【Springcloud Alibaba微服務(wù)分布式架構(gòu) | Spring Cloud】《系列教程-更新完畢》?

【SpringSecurity-從入門到精通】《學(xué)習(xí)完整筆記-附(完整demo源碼)》?

【從零開始Vue項(xiàng)目中使用MapboxGL開發(fā)三維地圖教程】《系列教程-不定時(shí)更新》?

【Vue.js學(xué)習(xí)詳細(xì)課程系列】《共32節(jié)專欄收錄內(nèi)容》?

感興趣的可以先收藏起來相關(guān)問題都可以給我留言咨詢,希望幫助更多的人。

目錄

一、前提

二、jenkins自動(dòng)部署vue前端項(xiàng)目

2.1 jenkins上安裝nodejs插件

2.2 全局工具配置實(shí)現(xiàn)nodejs配置

2.3 新建任務(wù)

2.4 任務(wù)配置

2.5 打包完成

三、jenkins自動(dòng)部署springboot后端項(xiàng)目

3.1 構(gòu)建一個(gè)maven項(xiàng)目

3.2 General配置

3.3 源碼管理

3. 4 Build構(gòu)建

3.5 Post Steps

3.6 構(gòu)建后操作

3.7 腳本參考

四、結(jié)論


一、前提

本地虛擬機(jī)上安裝了centos7,在centos7上安裝了docker、docker-compose、jenkins等鏡像。安裝過程可參考我以前寫的文章:CSDN

二、jenkins自動(dòng)部署vue前端項(xiàng)目

2.1 jenkins上安裝nodejs插件

在jenkins具備Publish Over SSH的基礎(chǔ)上,在jenkins上安裝nodejs插件

?

?

安裝成功后的效果:

?

2.2 全局工具配置實(shí)現(xiàn)nodejs配置

?

點(diǎn)擊nodeJs安裝--新增NodeJS

?

可實(shí)現(xiàn)配置多個(gè)。

nodejs配置完成,下邊就可以去開始搭建vue前端項(xiàng)目一鍵部署了。

2.3 新建任務(wù)

??

2.4 任務(wù)配置

General配置

?

git參數(shù)構(gòu)建:

?

源碼管理配置

?

?

構(gòu)建環(huán)境配置

?

構(gòu)建步驟中提供2個(gè)配置

  1. 執(zhí)行shell
  2. Send files or execute commands over SSH

?

#!/bin/bash
echo $PATH# 查看版本信息
node -V
npm -v
rm -rf node modules
rm -rf dist
npm cache clear --force# jenkins 拉取代碼存放地址在/var/jenkins home/workspace/j-vue3
echo“拉取代碼存放地址”
pwd
# 將代碼
# 將像源替換為淘寶的加速訪問
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 查看配置:
# npm config list
# 安裝項(xiàng)目依賴
cnpm install
# 項(xiàng)目打包
echo "開始vue編譯打包"
cnpm run build:dev
echo "結(jié)束vue編譯打包"
# 進(jìn)入打包目錄
# cd dist
# rm -rf *,tar.gz
# tar -zcvf dist,tar.gz *
# cd ../
echo "構(gòu)建結(jié)束"

?

2.5 打包完成

以上為本地實(shí)踐配置,親測(cè)有效。

三、jenkins自動(dòng)部署springboot后端項(xiàng)目

docker中安裝mysql、redis、jdk的詳細(xì)教程請(qǐng)參考我的文章:

Docker安裝詳細(xì)步驟及相關(guān)環(huán)境安裝配置(mysql、jdk、redis、自己的私有倉庫Gitlab 、C和C++環(huán)境以及Nginx服務(wù)代理)-CSDN博客

3.1 構(gòu)建一個(gè)maven項(xiàng)目

3.2 General配置

實(shí)現(xiàn)參數(shù)化構(gòu)建過程

3.3 源碼管理

3. 4 Build構(gòu)建

clean package -Dmaven.test.skip=true

3.5 Post Steps

只在構(gòu)建成功時(shí)才運(yùn)行。

3.6 構(gòu)建后操作

本地的目錄如下:

其中主要子目錄:

backup:是在本次部署時(shí),將原有的部署文件備份的位置

build:如上方截圖,將從gitee上拉取的代碼編譯后的jar文件放置的位置

shell:放置.sh腳本的位置

nohup.out:運(yùn)行日志文件

最后一個(gè)標(biāo)紅的jar文件:是本次部署運(yùn)行的jar文件,是通過腳本從build中獲取的

3.7 腳本參考

#!/bin/bash
set -e# 基礎(chǔ)
export JAVA_HOME=/home/java/jdk1.8.0_361
export PATH=PATH=$PATH:$JAVA_HOME/bin
# export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarDATE=$(date +%Y%m%d%H%M)
# 基礎(chǔ)路徑
BASE_PATH=/home/work/projects/ydemo-server
# 編譯后 jar 的地址。部署時(shí),Jenkins 會(huì)上傳 jar 包到該目錄下
SOURCE_PATH=$BASE_PATH/build
# 服務(wù)名稱。同時(shí)約定部署服務(wù)的 jar 包名字也為它。
SERVER_NAME=ydemo-server
# 環(huán)境
PROFILES_ACTIVE=local
# 健康檢查 URL
# HEALTH_CHECK_URL=http://127.0.0.1:8078/actuator/health/# heapError 存放路徑
HEAP_ERROR_PATH=$BASE_PATH/heapError
# JVM 參數(shù)
JAVA_OPS="-Xms1024m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH"
# JavaAgent 參數(shù)。可用于配置 SkyWalking 等鏈路追蹤
JAVA_AGENT=# 備份
function backup() {# 如果不存在,則無需備份if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; thenecho "[backup] $BASE_PATH/$SERVER_NAME.jar 不存在,跳過備份"# 如果存在,則備份到 backup 目錄下,使用時(shí)間作為后綴elseecho "[backup] 開始備份 $SERVER_NAME ..."cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jarecho "[backup] 備份 $SERVER_NAME 完成"fi
}# 最新構(gòu)建代碼 移動(dòng)到項(xiàng)目環(huán)境
function transfer() {echo "[transfer] 開始轉(zhuǎn)移 $SERVER_NAME.jar"# 刪除原 jar 包if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; thenecho "[transfer] $BASE_PATH/$SERVER_NAME.jar 不存在,跳過刪除"elseecho "[transfer] 移除 $BASE_PATH/$SERVER_NAME.jar 完成"rm $BASE_PATH/$SERVER_NAME.jarfi# 復(fù)制新 jar 包echo "[transfer] 從 $SOURCE_PATH 中獲取 $SERVER_NAME.jar 并遷移至 $BASE_PATH ...."cp $SOURCE_PATH/$SERVER_NAME.jar $BASE_PATHecho "[transfer] 轉(zhuǎn)移 $SERVER_NAME.jar 完成"
}# 停止
function stop() {echo "[stop] 開始停止 $BASE_PATH/$SERVER_NAME"PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')# 如果 Java 服務(wù)啟動(dòng)中,則進(jìn)行關(guān)閉if [ -n "$PID" ]; then# 正常關(guān)閉echo "[stop] $BASE_PATH/$SERVER_NAME 運(yùn)行中,開始 kill [$PID]"kill -15 $PID# 等待最大 120 秒,直到關(guān)閉完成。for ((i = 0; i < 120; i++))dosleep 1PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')if [ -n "$PID" ]; thenecho -e ".\c"elseecho '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功'breakfidone# 如果正常關(guān)閉失敗,那么進(jìn)行強(qiáng)制 kill -9 進(jìn)行關(guān)閉if [ -n "$PID" ]; thenecho "[stop] $BASE_PATH/$SERVER_NAME 失敗,強(qiáng)制 kill -9 $PID"kill -9 $PIDfi# 如果 Java 服務(wù)未啟動(dòng),則無需關(guān)閉elseecho "[stop] $BASE_PATH/$SERVER_NAME 未啟動(dòng),無需停止"fi
}# 啟動(dòng)
function start() {# 開啟啟動(dòng)前,打印啟動(dòng)參數(shù)echo "[start] 開始啟動(dòng) $BASE_PATH/$SERVER_NAME"echo "[start] JAVA_OPS: $JAVA_OPS"echo "[start] JAVA_AGENT: $JAVA_AGENT"echo "[start] PROFILES: $PROFILES_ACTIVE"# 開始啟動(dòng)BUILD_ID=dontKillMe nohup java -server $JAVA_OPS $JAVA_AGENT -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active=$PROFILES_ACTIVE &echo "[start] 啟動(dòng) $BASE_PATH/$SERVER_NAME 完成"
}# 健康檢查
function healthCheck() {# 如果配置健康檢查,則進(jìn)行健康檢查if [ -n "$HEALTH_CHECK_URL" ]; then# 健康檢查最大 60 秒,直到健康檢查通過echo "[healthCheck] 開始通過 $HEALTH_CHECK_URL 地址,進(jìn)行健康檢查";for ((i = 0; i < 60; i++))do# 請(qǐng)求健康檢查地址,只獲取狀態(tài)碼。result=`curl -I -m 10 -o /dev/null -s -w %{http_code} $HEALTH_CHECK_URL || echo "000"`# 如果狀態(tài)碼為 200,則說明健康檢查通過if [ "$result" == "200" ]; thenecho "[healthCheck] 健康檢查通過";break# 如果狀態(tài)碼非 200,則說明未通過。sleep 1 秒后,繼續(xù)重試elseecho -e ".\c"sleep 1fidone# 健康檢查未通過,則異常退出 shell 腳本,不繼續(xù)部署。if [ ! "$result" == "200" ]; thenecho "[healthCheck] 健康檢查不通過,可能部署失敗。查看日志,自行判斷是否啟動(dòng)成功";tail -n 10 nohup.outexit 1;# 健康檢查通過,打印最后 10 行日志,可能部署的人想看下日志。elsetail -n 10 nohup.outfi# 如果未配置健康檢查,則 slepp 60 秒,人工看日志是否部署成功。elseecho "[healthCheck] HEALTH_CHECK_URL 未配置,開始 sleep 60 秒";sleep 60echo "[healthCheck] sleep 60 秒完成,查看日志,自行判斷是否啟動(dòng)成功";tail -n 50 nohup.outfi
}# 部署
function deploy() {cd $BASE_PATH# 備份原 jarbackup# 停止 Java 服務(wù)stop# 部署新 jartransfer# 啟動(dòng) Java 服務(wù)start# 健康檢查healthCheck
}deploy

四、結(jié)論

本地已完成配置及實(shí)現(xiàn)一鍵部署,親測(cè)有效!

http://www.risenshineclean.com/news/58975.html

相關(guān)文章:

  • vshtml5網(wǎng)站開發(fā)提升網(wǎng)站權(quán)重的方法
  • 提供秦皇島網(wǎng)站建設(shè)哪里有國際軍事新聞最新消息
  • 中山網(wǎng)站建設(shè)前端開發(fā)
  • 政府網(wǎng)站建設(shè)的流程因素勞動(dòng)局免費(fèi)培訓(xùn)電工
  • 做網(wǎng)站銷售好做嗎電商推廣聯(lián)盟
  • 網(wǎng)站制作聯(lián)盟廈門百度推廣怎么做
  • 柳市做網(wǎng)站網(wǎng)上賣產(chǎn)品怎么推廣
  • 如何做能切換語言的網(wǎng)站網(wǎng)站建設(shè)公司哪家好?
  • 鄭州做網(wǎng)站價(jià)格微網(wǎng)站建站平臺(tái)
  • 網(wǎng)站結(jié)構(gòu)化數(shù)據(jù)愛站網(wǎng)關(guān)鍵詞長尾挖掘
  • 電腦做系統(tǒng)哪個(gè)網(wǎng)站比較好用西安網(wǎng)站外包
  • 有什么網(wǎng)站可以接淘寶設(shè)計(jì)單做淘寶指數(shù)
  • 商城網(wǎng)站制作的教程百度銷售是做什么
  • 免費(fèi)的模板網(wǎng)站廣州網(wǎng)絡(luò)推廣seo
  • 有哪個(gè)網(wǎng)站做正品港貨知乎推廣公司
  • 網(wǎng)站必須做ssl認(rèn)證淘寶店鋪推廣方式有哪些
  • 可做影視網(wǎng)站的服務(wù)器什么文案容易上熱門
  • 深圳龍華網(wǎng)站建設(shè)百度識(shí)圖搜索
  • 中糧我買網(wǎng)是哪個(gè)公司做的網(wǎng)站怎么創(chuàng)建網(wǎng)址
  • 網(wǎng)站服務(wù)器怎么做廣州seo工作
  • 網(wǎng)站底部模板淘寶一個(gè)關(guān)鍵詞要刷多久
  • 做網(wǎng)站用的什么服務(wù)器嗎廣州seo網(wǎng)站優(yōu)化培訓(xùn)
  • 找婚慶公司去什么網(wǎng)站東莞網(wǎng)絡(luò)公司代理
  • 網(wǎng)站虛擬機(jī)可以自己做嗎百度一下app下載安裝
  • 張家港做網(wǎng)站排名多少關(guān)鍵詞排名優(yōu)化軟件
  • 編程貓官方網(wǎng)站入口免費(fèi)自建網(wǎng)站有哪些
  • 在哪個(gè)網(wǎng)站做網(wǎng)上兼職靠譜市場(chǎng)調(diào)研的基本流程
  • 用網(wǎng)上的文章做網(wǎng)站行嗎如何增加網(wǎng)站的外鏈
  • 教育主管部門建設(shè)的專題資源網(wǎng)站是友情鏈接怎么設(shè)置
  • wordpress聯(lián)系我插件seo關(guān)鍵詞排名