保持線上項(xiàng)目穩(wěn)定運(yùn)行是很重要的,為了達(dá)到服務(wù)可用性在99.9%,也為了減少開發(fā)人員在項(xiàng)目部署時(shí)耗費(fèi)大量精力,可以嘗試自動(dòng)化發(fā)布
自動(dòng)化部署涉及到的配置比較多,每個(gè)環(huán)節(jié)需要掌握的知識(shí)也不同,所以分開寫
該過程中用到的技術(shù)棧webpack
docker
nginx
shell
mac
node > 10.11.1
docker > 20.0.0
通過create-react-app
構(gòu)建的一個(gè)前端項(xiàng),這里起名項(xiàng)目myweb
本地安裝docker
首先通過鏡像打包前端部署包,在項(xiàng)目根目錄下,新建Dockerfile文件
FROM node:10-alpine as builder WORKDIR /data/myweb COPY . . RUN npm install --registry=https://registry.npm.taobao.org --no-package-lock --no-save RUN yarn build FROM nginx:alpine as myweb RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone WORKDIR /data/myweb COPY ./nginx /etc/nginx/conf.d COPY --from=builder /data/myweb/build /data/myweb EXPOSE 80,443 復(fù)制代碼
該Dockerfile干了兩件事,
第一是將前端項(xiàng)目打包到node鏡像中,這里起名builder
第二是拉取nginx鏡像,將文件的nginx配置鏡像覆蓋,將builder鏡像中打包的文件復(fù)制到nginx鏡像的/data/myweb
文件中,執(zhí)行docker build -t myweb .
此時(shí)我們執(zhí)行打包命令,得到的兩個(gè)鏡像,一個(gè)打包后的node鏡像,一個(gè)nginx鏡像,我們只需要nginx鏡像來(lái)拉起服務(wù)
// 1、docker通過Dockerfile構(gòu)建鏡像 `docker build -t dockerName:1.0.0 .` // 2、查看當(dāng)前存在鏡像 docker images // 3、刪除docker鏡像 docker rmi dockerImageId // 4、刪除docker容器 docker rm dockerContainerId // 5、啟動(dòng)一個(gè)docker容器 docker run -d -p 8000:80 --name frontend [dockerImageName] // 6、查看運(yùn)行中的容器 docker ps 復(fù)制代碼
我們可以看到當(dāng)前運(yùn)行中的容器
在瀏覽器訪問http://localhost:8000
即可看到當(dāng)前通過docker部署的服務(wù)
和我們正常部署是一樣的,用來(lái)轉(zhuǎn)發(fā)靜態(tài)資源 在根目錄下新建nginx文件夾,/nginx/default.conf
server { listen 80; server_name localhost; location / { root /data/myweb; index index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } 復(fù)制代碼
這樣我們完成了第一步,通過docker部署我們的服務(wù)。
如果我們直接通過docker部署前端也是可以的。
接著,有了docker部署的基礎(chǔ),
接著繼續(xù)通過k8s集群的部署
作者:前端中后臺(tái)
鏈接:https://juejin.cn/post/6962037427108380709
來(lái)源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127951.html
摘要:,自動(dòng)構(gòu)建,表示這個(gè)鏡像由的自動(dòng)構(gòu)建流程構(gòu)建的。保存的目錄稱為上下文,會(huì)在構(gòu)建鏡像時(shí)將構(gòu)建的上下文和該上下文的文件和目錄上傳到守護(hù)進(jìn)程??捎寐赃^緩存查看鏡像的每一層參考第一本書 docker入門 主要是docker使用命令 docker守護(hù)進(jìn)程 修改守護(hù)進(jìn)程的網(wǎng)絡(luò) sudo docker daemon -H tcp://0.0.0.0:2375 這條命令將docker守護(hù)進(jìn)程 //...
摘要:將一個(gè)輕量級(jí)的容器虛擬化平臺(tái)和一組標(biāo)準(zhǔn)工作流程工具進(jìn)行集成,來(lái)幫助你方便地管理和部署應(yīng)用。主要包括哪些組件主要包括兩個(gè)組件開源的容器虛擬化平臺(tái)用于分享和管理容器的軟件即服務(wù)平臺(tái)。 【編者的話】本文來(lái)自 Docker 的官方文檔,詳細(xì)介紹了 Docker 的體系結(jié)構(gòu)、重要概念、內(nèi)部工作機(jī)理等內(nèi)容,推薦不了解 Docker 內(nèi)部原理的同學(xué)閱讀。 什么是 Docker? Docker 是...
摘要:聯(lián)調(diào)測(cè)試,無(wú)需依賴他人。針對(duì)以上問題,有兩種解決方法,一個(gè)是自己搭建私有服務(wù),另一個(gè)是用云服務(wù)的鏡像管理平臺(tái)如阿里云的容器鏡像服務(wù)。利用,先對(duì)阿里云的服務(wù)進(jìn)行登錄。推送后,就能在阿里云的倉(cāng)庫(kù)上看到這個(gè)鏡像。 Docker簡(jiǎn)述 Docker是一種OS虛擬化技術(shù),是一個(gè)開源的應(yīng)用容器引擎。它可以讓開發(fā)者將應(yīng)用打包到一個(gè)可移植的容器中,并且該容器可以運(yùn)行在幾乎所有l(wèi)inux系統(tǒng)中(Windo...
Docker技術(shù)之構(gòu)建鏡像和網(wǎng)絡(luò)模式解析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:分鐘快速入門教程一歡迎來(lái)到世界與虛擬化在沒有的時(shí)代,我們會(huì)使用硬件虛擬化虛擬機(jī)以提供隔離。倉(cāng)庫(kù)分為公開倉(cāng)庫(kù)和私有倉(cāng)庫(kù),最大的公開倉(cāng)庫(kù)是官方倉(cāng)庫(kù),國(guó)內(nèi)的公開倉(cāng)庫(kù)也有很多選擇,例如阿里云等。 30 分鐘快速入門 Docker 教程 一、歡迎來(lái)到 Docker 世界 1. Docker 與虛擬化 在沒有 Docker 的時(shí)代,我們會(huì)使用硬件虛擬化(虛擬機(jī))以提供隔離。這里,虛擬機(jī)通過在操作系...
閱讀 122·2024-11-07 18:25
閱讀 130171·2024-02-01 10:43
閱讀 793·2024-01-31 14:58
閱讀 769·2024-01-31 14:54
閱讀 82586·2024-01-29 17:11
閱讀 2895·2024-01-25 14:55
閱讀 1933·2023-06-02 13:36
閱讀 2878·2023-05-23 10:26