docker如何打包前端并運(yùn)行完整步驟詳解
前端使用 Vue 3 + Vite
1.use npm run preview 運(yùn)行
0.項(xiàng)目根目錄下新建.env文件
VITE_BASE_API_prod=http://127.0.0.1:5000/api # 線上環(huán)境 VITE_MOCK_API_prod=api # 本地模擬數(shù)據(jù) VITE_BASE_API_dev=http://127.0.0.1:5000/api # 開發(fā)環(huán)境 VITE_MOCK_API_dev=api # 本地模擬數(shù)據(jù)
1. 確保安裝依賴
在項(xiàng)目的根目錄下,確保你已經(jīng)安裝了所有的依賴包。運(yùn)行以下命令來安裝:
node -v
v20.18.0
npm install
2. 運(yùn)行開發(fā)服務(wù)器
運(yùn)行以下命令啟動開發(fā)服務(wù)器:
npm run dev
這將執(zhí)行 package.json
文件中定義的 dev
腳本。通常情況下,這會啟動一個本地的開發(fā)服務(wù)器(如 Webpack Dev Server、Vite、Next.js 等),并監(jiān)聽你項(xiàng)目中的源代碼文件。一旦你做出修改,開發(fā)服務(wù)器通常會自動重新加載頁面。
3. 訪問開發(fā)環(huán)境
開發(fā)服務(wù)器通常會啟動在本地某個端口上(常見的是 localhost:5173
),你可以在瀏覽器中輸入相應(yīng)地址訪問你的應(yīng)用。
- 如果開發(fā)服務(wù)器運(yùn)行在
localhost:5173
,那么你可以在瀏覽器地址欄輸入:http://localhost:5173
具體的端口號可以在命令行中看到,或者在 package.json
中查看 dev
腳本的配置。
4. 構(gòu)建生產(chǎn)環(huán)境
npm run dev npm run build npm run preview
到此為止,就會在當(dāng)前目錄下闡述靜態(tài)資源dist
文件夾。
2.docker 運(yùn)行
將前端資源編譯打包并交付給平臺基建組,主要涉及以下步驟:
1. 編譯和打包前端資源
構(gòu)建項(xiàng)目:
使用npm run build
命令生成靜態(tài)資源:npm run build
這會在項(xiàng)目根目錄下生成一個
dist
文件夾,包含所有的靜態(tài)文件。檢查打包結(jié)果:
確保dist
文件夾中的內(nèi)容是完整的,包括index.html
和相關(guān)的 CSS、JS 文件。
2. 配置 Nginx
2.1 創(chuàng)建 Nginx 配置文件
為前端項(xiàng)目配置 Nginx。新建一個 Nginx 配置文件,例如 my-vue-app.conf
,內(nèi)容如下:
server { listen 80; server_name your.domain.com; # 替換為實(shí)際的域名或 IP 地址 root /usr/share/nginx/html; # 指定靜態(tài)資源的路徑 index index.html; location / { try_files $uri /index.html; } error_page 404 /index.html; # 可選:配置 gzip 壓縮 gzip on; gzip_types text/plain application/javascript text/css application/json; }
2.2 確保目錄一致
在配置文件中,root
指定的路徑是 Nginx 用來加載前端資源的目錄。比如 /usr/share/nginx/html
。
3. 將前端資源放入 Nginx 鏡像
創(chuàng)建 Dockerfile在項(xiàng)目目錄下新建一個
Dockerfile
文件:FROM nginx:latest # 刪除默認(rèn)的 Nginx HTML 文件 RUN rm -rf /usr/share/nginx/html/* # 將本地的前端打包文件復(fù)制到 Nginx 鏡像中 COPY dist /usr/share/nginx/html # 復(fù)制自定義 Nginx 配置文件 COPY AMP_SEMiner_portal_frontend.conf /etc/nginx/conf.d/default.conf
構(gòu)建鏡像使用 Docker 構(gòu)建 Nginx 鏡像:
docker build -t amp_seminer_portal_frontend-nginx .
驗(yàn)證鏡像運(yùn)行生成的 Docker 鏡像以驗(yàn)證配置是否正確:
docker run -p 8080:80 amp_seminer_portal_frontend-nginx
在瀏覽器中訪問
http://localhost:8080
,檢查是否能夠正確加載前端頁面。
4. 將鏡像交付給平臺基建組
標(biāo)記鏡像給鏡像打標(biāo)簽,指向公司或團(tuán)隊(duì)的 Docker Registry:
docker tag amp_seminer_portal_frontend-nginx jackkuo666/amp_seminer_portal_frontend-nginx:v1
推送鏡像將鏡像推送到指定的 Docker Registry:
docker push jackkuo666/amp_seminer_portal_frontend-nginx:v1
通知基建組向平臺基建組提供以下信息:
- 鏡像名稱和版本(例如:
jackkuo666/amp_seminer_portal_frontend-nginx:v1
)。 - 配置中使用的端口(默認(rèn) 80)。
- 依賴的環(huán)境變量或運(yùn)行時配置(如果有)。
5. 平臺基建組的操作建議
基建組拉取鏡像后,可以使用以下命令部署鏡像:
docker pull jackkuo666/amp_seminer_portal_frontend-nginx:v1 docker run -d -p 80:80 --name amp_seminer_portal_frontend-nginx jackkuo666/amp_seminer_portal_frontend-nginx:v1
如果在 Kubernetes 環(huán)境下運(yùn)行,建議基建組編寫一個 Deployment 和 Service 配置文件,以便進(jìn)行集群內(nèi)的部署。
6. 總結(jié)
- 前端開發(fā)者:負(fù)責(zé)編譯、配置 Nginx、構(gòu)建 Docker 鏡像并推送到 Registry。
- 基建組:拉取鏡像并部署到目標(biāo)環(huán)境。
通過這種方式,前端項(xiàng)目可以高效地交付和運(yùn)行在生產(chǎn)環(huán)境中。
到此這篇關(guān)于docker如何打包前端并運(yùn)行文章就介紹到這了,更多相關(guān)docker打包前端并運(yùn)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker搭建Calibre-Web在線書庫的實(shí)現(xiàn)示例
本文主要介紹了Docker搭建Calibre-Web在線書庫的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01詳解Windows?利用?WSL2?安裝?Docker?的2種方式
這篇文章主要介紹了Windows?利用?WSL2?安裝?Docker?的2種方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10docker 指定IP地址、與主機(jī)同網(wǎng)段IP
這篇文章主要介紹了docker 指定IP地址、與主機(jī)同網(wǎng)段IP,非常具有實(shí)用價值,需要的朋友可以參考下2017-05-05使用Docker搭建Apache Kafka環(huán)境的詳細(xì)過程
這篇文章主要介紹了使用Docker搭建Apache Kafka環(huán)境,本文使用Docker技術(shù)創(chuàng)建單個Kafka節(jié)點(diǎn)和Kafka集群環(huán)境,并且使用可視化工具連接服務(wù)查看代理服務(wù)器的配置信息,需要的朋友可以參考下2022-10-10利用 Docker 構(gòu)建簡單的 java 開發(fā)編譯環(huán)境的方法詳解
這篇文章主要介紹了利用 Docker 構(gòu)建簡單的 java 開發(fā)編譯環(huán)境的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image)
今天小編就為大家分享一篇關(guān)于Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12如何修改Docke上傳/下載并發(fā)線程數(shù)來解決docker: unexpected EOF.錯誤問題
下載或上傳鏡像時,有可能因?yàn)榫W(wǎng)絡(luò)問題導(dǎo)致報出docker: unexpected EOF.的錯誤,這時候可以考慮通過修改上傳/下載并發(fā)線程數(shù)來解決,本文給大家分享兩種方法幫助大家解決,需要的朋友一起看看吧2023-03-03詳解使用docker 1.12 搭建多主機(jī)docker swarm集群
本篇文章主要介紹了使用docker 1.12 搭建多主機(jī)docker swarm集群,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07