国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站

這篇具有很好參考價(jià)值的文章主要介紹了簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 背景

大家在生活中經(jīng)常會(huì)自己寫一點(diǎn)小代碼。然后部署在公有云的服務(wù)器上。但是一般像阿里,騰訊等服務(wù)商,提供的機(jī)器內(nèi)存并不是很大。如果想裝入一個(gè)jenkins之類的服務(wù),會(huì)比較占用CPU和內(nèi)存的資源。但是人手的部署又是比較麻煩的。所以我這里提供了一個(gè)思路,使用shell腳本來簡(jiǎn)單實(shí)現(xiàn)自動(dòng)化構(gòu)建。

2.基本原理

這個(gè)很簡(jiǎn)單的,我以比較常規(guī)的 vue.js + spring的方式來介紹一下。我們需要在服務(wù)器上安裝git和配置好ssh key,這個(gè)不做過多介紹。具體的流程圖如下。

簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站

?3. 具體實(shí)現(xiàn)

這里我將它拆分為以下幾個(gè)步驟。

3.1 拉取代碼 && 將后臺(tái)代碼打包成jar

# 拉代碼 打包后臺(tái)jar start
cd /usr/local/cicd/blog-backend/ 
git pull origin master 

cd /usr/local/cicd/blog-client/ 
git pull origin master &
echo "-----pull code completed------"

# page jar
cd /usr/local/cicd/blog-backend/ 
mvn clean compile
mvn clean package
echo "-----mvn package completed------"

rm -rf /usr/local/cicd/blog-api-0.0.1-SNAPSHOT.jar
cp /usr/local/cicd/blog-backend/target/blog-api-0.0.1-SNAPSHOT.jar /usr/local/cicd
echo "-----copy file success------"
#拉代碼 打包后臺(tái)jar end

3.2 移除舊的container及image運(yùn)行最新代碼打包成的container

這里使用了一點(diǎn)bash腳本的變量,通過shell命令拿到舊的containerId,并將其移除掉。

刪除image相對(duì)復(fù)雜一點(diǎn),通過grep命令拿到指定的image的id, 再移除掉。具體的可以參考下方的link.

最后是啟動(dòng)新的container,通過dockerfile將jar打包進(jìn)container,再docker run即可。這里貼上我的簡(jiǎn)單的Dockerfile.可以看到我的shell腳本以及jar,Dockerfile在同一目錄下,所以COPY *.jar就能輕易找到對(duì)應(yīng)的文件。

簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站

FROM openjdk:8-jdk-alpine
COPY *.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
# docker 運(yùn)行 jar start
cd /usr/local/cicd
container_id=$(sudo docker ps -aqf "name=blob")
docker stop $container_id
docker rm $container_id
echo "----rm old container success------"
echo "----container id: { $container_id }----"
#https://www.cnblogs.com/sjptech/p/10865490.html
# 通過repository name 過濾并刪除 image
docker images | grep -E "blob" | awk '{print $3}' | uniq | xargs -I {} docker rmi --force {}
echo "----rm old image success------"

docker build -t blob:v1 .
echo "-----build success------"
docker run -d -p 8888:8888 --name blob blob:v1
echo "-----docker run success------"
# docker 運(yùn)行 jar end

3.3. 打包前端代碼

這似乎是最簡(jiǎn)單的部分了,僅需在服務(wù)器端提前安裝好node,執(zhí)行命令打包即可。最后將build好的文件放置回nginx的目錄即可。

# copy 前端資源到nginx 的html目錄 start
cd /usr/local/cicd/blog-client
npm install
npm run build
echo "-----npm over------"
rm -rf /usr/share/nginx/html/*
cp -r ./dist/* /usr/share/nginx/html
echo "----nginx file copy over------"
# copy 前端資源到nginx 的html目錄 end
echo "全部結(jié)束啊啊啊"

4. 效果展示及附件

4.1 效果展示

簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站

?簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站

?4.2 完整文件下載

見此link,?Download

簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站

?5. 其他優(yōu)化

相信比較懶的小伙伴看出來了,這樣做似乎也不夠自動(dòng)化。還需要鏈接到服務(wù)器去執(zhí)行腳本,能不能更加自動(dòng)化呢。這個(gè)確實(shí)可以,參考jenkins的實(shí)現(xiàn)方式,可以使用github等平臺(tái)的webhook,只要簡(jiǎn)單的配置好url. 當(dāng)有push操作時(shí),github會(huì)觸發(fā)一個(gè)call到配置好的url上。這樣當(dāng)接收到請(qǐng)求之后,只要簡(jiǎn)單觸發(fā)上面的腳本執(zhí)行即可。

由于篇幅有限,將在下篇文章中介紹具體的實(shí)現(xiàn)。碼字不易,希望大家能點(diǎn)個(gè)贊哈。文章來源地址http://www.zghlxwxcb.cn/news/detail-415265.html

到了這里,關(guān)于簡(jiǎn)單的Shell腳本實(shí)現(xiàn)自動(dòng)化構(gòu)建部署-適合前后端分離的小網(wǎng)站的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • shell自動(dòng)化腳本,啟動(dòng)、停止應(yīng)用程序

    shell自動(dòng)化腳本,啟動(dòng)、停止應(yīng)用程序

    準(zhǔn)確的講/etc下的rc.local文件是rc.d文件中rc.local文件的軟鏈接,找到rc.d下的rc.local文件,添加可執(zhí)行選項(xiàng)。如果沒有該文件可以自己創(chuàng)建。 要想你的腳本文件開機(jī)自啟動(dòng)還需要用到rc-local.service這個(gè)服務(wù)。

    2024年02月03日
    瀏覽(20)
  • shell腳本——服務(wù)器巡檢(自動(dòng)化運(yùn)維)

    ?目的? ?自動(dòng) 獲取集群內(nèi) 多個(gè)主機(jī) 的內(nèi)存、磁盤、cpu等信息 生成日志 ?準(zhǔn)備? ? VMware虛擬主機(jī)IP在同一個(gè)網(wǎng)段(互相能ping通) ? ? ? ? ? ? 虛擬主機(jī)都有公鑰免登錄 ???????????修改主機(jī)IP? vi/etc/sysconfig/netwoek-scripts/ifcfg-ens160 ? ? ? ? ? ?設(shè)置主機(jī)名?hostnamectl set-ho

    2024年02月15日
    瀏覽(40)
  • ansible相比shell腳本自動(dòng)化有什么優(yōu)勢(shì)

    Ansible自動(dòng)化與Shell腳本自動(dòng)化相比,具有以下幾個(gè)顯著的優(yōu)勢(shì): 輕量級(jí)與無(wú)需代理 :Ansible的一個(gè)關(guān)鍵優(yōu)勢(shì)在于其輕量級(jí)和無(wú)需在被控制服務(wù)器上安裝任何代理或客戶端的特點(diǎn)。這極大地簡(jiǎn)化了部署和維護(hù)的流程,降低了復(fù)雜性和出錯(cuò)的可能性。而Shell腳本通常需要在每臺(tái)服

    2024年04月25日
    瀏覽(33)
  • Shell腳本入門實(shí)戰(zhàn):探索自動(dòng)化任務(wù)與實(shí)用場(chǎng)景

    引言 Shell腳本作為一種強(qiáng)大的自動(dòng)化工具,在現(xiàn)代操作系統(tǒng)中具有廣泛的應(yīng)用。無(wú)論是簡(jiǎn)單的文件操作,還是復(fù)雜的系統(tǒng)管理,Shell腳本都能提供高效、快速的解決方案。在本文中,我們將探索Shell腳本的基礎(chǔ)知識(shí),并通過實(shí)戰(zhàn)場(chǎng)景示例,一起深入了解Shell腳本編程。 1. Shell腳

    2024年02月02日
    瀏覽(48)
  • DevOps自動(dòng)化平臺(tái)開發(fā)之 Shell腳本執(zhí)行的封裝

    DevOps自動(dòng)化平臺(tái)開發(fā)之 Shell腳本執(zhí)行的封裝

    基于如下技術(shù)棧開發(fā)DevOps平臺(tái) Spring Boot Shell Ansible Git Gitlab Docker K8S Vue ?1、spring boot starter的封裝使用 2、Shell腳本的編寫 3、Ansible 腳本的編寫 4、Docker 的使用與封裝設(shè)計(jì) 本篇介紹如何使用Java封裝Linux命令和Shell腳本的使用 將其設(shè)計(jì)成spring boot starter maven依賴pom文件 具體的封裝

    2024年02月15日
    瀏覽(21)
  • 【Linux編程Shell自動(dòng)化腳本】03 shell四劍客(find、sed、grep、awk)

    語(yǔ)法格式 參數(shù)說明 : path 是要查找的目錄路徑,可以是一個(gè)目錄或文件名,也可以是多個(gè)路徑,多個(gè)路徑之間用空格分隔,如果未指定路徑,則默認(rèn)為當(dāng)前目錄。 expression 是可選參數(shù),用于指定查找的條件,可以是文件名、文件類型、文件大小等等。 1. 常用expression 以下列出

    2024年02月09日
    瀏覽(28)
  • Powershell腳本自動(dòng)化登錄網(wǎng)站的簡(jiǎn)單實(shí)例,命令行方式實(shí)現(xiàn)Http(s)的GET、POST請(qǐng)求

    Powershell腳本自動(dòng)化登錄網(wǎng)站的簡(jiǎn)單實(shí)例,命令行方式實(shí)現(xiàn)Http(s)的GET、POST請(qǐng)求

    自動(dòng)化登錄網(wǎng)站的流程比較簡(jiǎn)單,如果不懂 Python、JavaScript、C++ 等編程語(yǔ)言,又沒有安裝這些編程語(yǔ)言環(huán)境軟件,我們還要新的點(diǎn)子:用Windows系統(tǒng)自帶的 Powershell 運(yùn)行自編的腳本來實(shí)現(xiàn)。 PowerShell 是一種功能強(qiáng)大的自動(dòng)化工具,除了可以使用?DOS 批處理命令之外,還可以進(jìn)行

    2024年02月10日
    瀏覽(25)
  • 簡(jiǎn)單的jmeter腳本自動(dòng)化

    簡(jiǎn)單的jmeter腳本自動(dòng)化

    1、創(chuàng)建線程組,定義自定義變量,保存請(qǐng)求默認(rèn)值 2、用csv編寫測(cè)試用例 備注:如果單元格內(nèi)本身就有引號(hào),則格式會(huì)有點(diǎn)小問題,不能直接修改為csv?? 用txt打開后 有引號(hào)的需要在最外層多包一層引號(hào),每個(gè)引號(hào)前面也要加一層引號(hào) 3、使用csv文件讀取測(cè)試用例 4、創(chuàng)建h

    2024年04月27日
    瀏覽(23)
  • 【區(qū)塊鏈技術(shù)開發(fā)】 Solidity使用Truffle Box工具實(shí)現(xiàn)預(yù)構(gòu)建模板、自動(dòng)化部署、創(chuàng)建智能合約示例代碼

    專欄:區(qū)塊鏈技術(shù)開發(fā) Truffle Box是一個(gè)開發(fā)工具,為Truffle生態(tài)系統(tǒng)中的開發(fā)人員提供了預(yù)構(gòu)建

    2023年04月16日
    瀏覽(159)
  • Jenkins部署與自動(dòng)化構(gòu)建

    Jenkins部署與自動(dòng)化構(gòu)建

    docker 安裝 Jenkins 拉取穩(wěn)定版Jenkins鏡像 注意: docker拉取鏡像的時(shí)候要拉取 jenkins/jenkins 而不是jenkins 要裝穩(wěn)定版,否則后面會(huì)有很多插件裝不上 掛載對(duì)應(yīng)的容器卷 修改插件下載鏡像源為清華鏡像(可以先直接嘗試一下是否可以安裝成功) 訪問web頁(yè)面 http://IP:8090/ 去查看第一次

    2023年04月08日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包