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 # 開(kāi)發(fā)環(huán)境 VITE_MOCK_API_dev=api # 本地模擬數(shù)據(jù)
1. 確保安裝依賴
在項(xiàng)目的根目錄下,確保你已經(jīng)安裝了所有的依賴包。運(yùn)行以下命令來(lái)安裝:
node -v
v20.18.0
npm install
2. 運(yùn)行開(kāi)發(fā)服務(wù)器
運(yùn)行以下命令啟動(dòng)開(kāi)發(fā)服務(wù)器:
npm run dev
這將執(zhí)行 package.json 文件中定義的 dev 腳本。通常情況下,這會(huì)啟動(dòng)一個(gè)本地的開(kāi)發(fā)服務(wù)器(如 Webpack Dev Server、Vite、Next.js 等),并監(jiān)聽(tīng)你項(xiàng)目中的源代碼文件。一旦你做出修改,開(kāi)發(fā)服務(wù)器通常會(huì)自動(dòng)重新加載頁(yè)面。
3. 訪問(wèn)開(kāi)發(fā)環(huán)境
開(kāi)發(fā)服務(wù)器通常會(huì)啟動(dòng)在本地某個(gè)端口上(常見(jiàn)的是 localhost:5173 ),你可以在瀏覽器中輸入相應(yīng)地址訪問(wèn)你的應(yīng)用。
- 如果開(kāi)發(fā)服務(wù)器運(yùn)行在
localhost:5173,那么你可以在瀏覽器地址欄輸入:http://localhost:5173
具體的端口號(hào)可以在命令行中看到,或者在 package.json 中查看 dev 腳本的配置。
4. 構(gòu)建生產(chǎn)環(huán)境
npm run dev npm run build npm run preview
到此為止,就會(huì)在當(dāng)前目錄下闡述靜態(tài)資源dist文件夾。
2.docker 運(yùn)行
將前端資源編譯打包并交付給平臺(tái)基建組,主要涉及以下步驟:
1. 編譯和打包前端資源
構(gòu)建項(xiàng)目:
使用npm run build命令生成靜態(tài)資源:npm run build
這會(huì)在項(xiàng)目根目錄下生成一個(gè)
dist文件夾,包含所有的靜態(tài)文件。檢查打包結(jié)果:
確保dist文件夾中的內(nèi)容是完整的,包括index.html和相關(guān)的 CSS、JS 文件。
2. 配置 Nginx
2.1 創(chuàng)建 Nginx 配置文件
為前端項(xiàng)目配置 Nginx。新建一個(gè) 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 用來(lái)加載前端資源的目錄。比如 /usr/share/nginx/html。
3. 將前端資源放入 Nginx 鏡像
創(chuàng)建 Dockerfile在項(xiàng)目目錄下新建一個(gè)
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
在瀏覽器中訪問(wèn)
http://localhost:8080,檢查是否能夠正確加載前端頁(yè)面。
4. 將鏡像交付給平臺(tái)基建組
標(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
通知基建組向平臺(tái)基建組提供以下信息:
- 鏡像名稱和版本(例如:
jackkuo666/amp_seminer_portal_frontend-nginx:v1)。 - 配置中使用的端口(默認(rèn) 80)。
- 依賴的環(huán)境變量或運(yùn)行時(shí)配置(如果有)。
5. 平臺(tái)基建組的操作建議
基建組拉取鏡像后,可以使用以下命令部署鏡像:
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)行,建議基建組編寫(xiě)一個(gè) Deployment 和 Service 配置文件,以便進(jìn)行集群內(nèi)的部署。
6. 總結(jié)
- 前端開(kāi)發(fā)者:負(fù)責(zé)編譯、配置 Nginx、構(gòu)建 Docker 鏡像并推送到 Registry。
- 基建組:拉取鏡像并部署到目標(biāo)環(huán)境。
通過(guò)這種方式,前端項(xiàng)目可以高效地交付和運(yùn)行在生產(chǎn)環(huán)境中。
到此這篇關(guān)于docker如何打包前端并運(yùn)行文章就介紹到這了,更多相關(guān)docker打包前端并運(yùn)行內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝MySQL鏡像實(shí)戰(zhàn)分享
這篇文章主要給大家分享了Docker安裝MySQL鏡像實(shí)戰(zhàn),讓大家更深入的了解容器的使用場(chǎng)景,文章通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
在Docker中運(yùn)行Java JAR包的實(shí)戰(zhàn)教程
這篇文章詳細(xì)介紹了使用Docker運(yùn)行Java應(yīng)用的全過(guò)程,從環(huán)境準(zhǔn)備到構(gòu)建與運(yùn)行,再到進(jìn)階配置和最佳實(shí)踐,需要的朋友可以參考下2025-12-12
在docker中的mysql容器內(nèi)執(zhí)行命令與執(zhí)行SQL文件方式
文章介紹了如何通過(guò)Docker進(jìn)入MySQL容器執(zhí)行SQL文件,并總結(jié)了MySQL清空表數(shù)據(jù)的三種方法:TRUNCATE、DROP和DELETE,每種方法都有其適用場(chǎng)景和特點(diǎn)2025-01-01
Windows Docker 部署 SolrCloud的方法步驟
本文主要介紹了Windows Docker 部署 SolrCloud的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
使用docker搭建一套開(kāi)發(fā)環(huán)境全家桶的詳細(xì)教程
這篇文章主要介紹了使用docker搭建一套開(kāi)發(fā)環(huán)境全家桶,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
docker 復(fù)制容器的項(xiàng)目實(shí)踐
本文主要介紹了docker 復(fù)制容器的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
解決docker訪問(wèn)外部https數(shù)字證書(shū)問(wèn)題
這篇文章主要介紹了docker訪問(wèn)外部https數(shù)字證書(shū)問(wèn)題,為了解決證書(shū)驗(yàn)證的問(wèn)題,我們需要在構(gòu)建 docker 鏡像的時(shí)候?qū)?nbsp;ca-certificates 根證書(shū)裝上,需要的朋友可以參考下2022-09-09

