保持線上項目穩定運行是很重要的,為了達到服務可用性在99.9%,也為了減少開發人員在項目部署時耗費大量精力,可以嘗試自動化發布
自動化部署涉及到的配置比較多,每個環節需要掌握的知識也不同,所以分開寫
該過程中用到的技術棧webpack
docker
nginx
shell
mac
node > 10.11.1
docker > 20.0.0
通過create-react-app
構建的一個前端項,這里起名項目myweb
本地安裝docker
首先通過鏡像打包前端部署包,在項目根目錄下,新建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 復制代碼
該Dockerfile干了兩件事,
第一是將前端項目打包到node鏡像中,這里起名builder
第二是拉取nginx鏡像,將文件的nginx配置鏡像覆蓋,將builder鏡像中打包的文件復制到nginx鏡像的/data/myweb
文件中,執行docker build -t myweb .
此時我們執行打包命令,得到的兩個鏡像,一個打包后的node鏡像,一個nginx鏡像,我們只需要nginx鏡像來拉起服務
// 1、docker通過Dockerfile構建鏡像 `docker build -t dockerName:1.0.0 .` // 2、查看當前存在鏡像 docker images // 3、刪除docker鏡像 docker rmi dockerImageId // 4、刪除docker容器 docker rm dockerContainerId // 5、啟動一個docker容器 docker run -d -p 8000:80 --name frontend [dockerImageName] // 6、查看運行中的容器 docker ps 復制代碼
我們可以看到當前運行中的容器
在瀏覽器訪問http://localhost:8000
即可看到當前通過docker部署的服務
和我們正常部署是一樣的,用來轉發靜態資源 在根目錄下新建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; } } 復制代碼
這樣我們完成了第一步,通過docker部署我們的服務。
如果我們直接通過docker部署前端也是可以的。
接著,有了docker部署的基礎,
接著繼續通過k8s集群的部署
作者:前端中后臺
鏈接:https://juejin.cn/post/6962037427108380709
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127951.html
摘要:將一個輕量級的容器虛擬化平臺和一組標準工作流程工具進行集成,來幫助你方便地管理和部署應用。主要包括哪些組件主要包括兩個組件開源的容器虛擬化平臺用于分享和管理容器的軟件即服務平臺。 【編者的話】本文來自 Docker 的官方文檔,詳細介紹了 Docker 的體系結構、重要概念、內部工作機理等內容,推薦不了解 Docker 內部原理的同學閱讀。 什么是 Docker? Docker 是...
摘要:聯調測試,無需依賴他人。針對以上問題,有兩種解決方法,一個是自己搭建私有服務,另一個是用云服務的鏡像管理平臺如阿里云的容器鏡像服務。利用,先對阿里云的服務進行登錄。推送后,就能在阿里云的倉庫上看到這個鏡像。 Docker簡述 Docker是一種OS虛擬化技術,是一個開源的應用容器引擎。它可以讓開發者將應用打包到一個可移植的容器中,并且該容器可以運行在幾乎所有linux系統中(Windo...
Docker技術之構建鏡像和網絡模式解析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:分鐘快速入門教程一歡迎來到世界與虛擬化在沒有的時代,我們會使用硬件虛擬化虛擬機以提供隔離。倉庫分為公開倉庫和私有倉庫,最大的公開倉庫是官方倉庫,國內的公開倉庫也有很多選擇,例如阿里云等。 30 分鐘快速入門 Docker 教程 一、歡迎來到 Docker 世界 1. Docker 與虛擬化 在沒有 Docker 的時代,我們會使用硬件虛擬化(虛擬機)以提供隔離。這里,虛擬機通過在操作系...
閱讀 283·2024-11-07 18:25
閱讀 130362·2024-02-01 10:43
閱讀 867·2024-01-31 14:58
閱讀 828·2024-01-31 14:54
閱讀 82766·2024-01-29 17:11
閱讀 3047·2024-01-25 14:55
閱讀 1985·2023-06-02 13:36
閱讀 3032·2023-05-23 10:26