前端項(xiàng)目容器化Docker打包部署方式詳解

前端項(xiàng)目容器化(Docker)打包部署
- 新建一個(gè)vue項(xiàng)目
- 增加容器配置
- docker命令打包鏡像,部署本機(jī)
新建vue項(xiàng)目
使用vue官方腳手架創(chuàng)建一個(gè)項(xiàng)目
- 下面的demo使用默認(rèn)配置
安裝依賴并運(yùn)行
# 使用vue腳手架創(chuàng)建項(xiàng)目 npm create vue@latest # 進(jìn)入項(xiàng)目(假設(shè)項(xiàng)目名為"xxc-web") cd xxc-web # 安裝依賴 npm install # 測試 npm run dev
手動打包部署(舊方式)
單機(jī)部署方式通常使用"npm run build"打包成靜態(tài)文件
- 通常打包后文件在項(xiàng)目根目錄的"dist"目錄下
- 將dist目錄的文件上傳服務(wù)器
- 配置nginx,將某域名/端口號指向該目錄
之后即可使用http://ip:port訪問
容器化(Docker)打包部署
打包配置
根目錄新增"nginx.conf"文件
- 為了解決部分框架部署后的路由問題
- 如:該開始訪問一切正常,但是使用瀏覽器刷新后,報(bào)錯(cuò)404
文件內(nèi)容如下:
server {
listen 80;
listen [::]:80;
server_name localhost;
access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
# 新增下面這句,其他是默認(rèn)nginx配置
# 解決部分前端框架的路由問題,在瀏覽器刷新報(bào)錯(cuò)404
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}根目錄新增"Dockerfile"文件
- 打包過程分為兩個(gè)階段
- 第一階段:使用node鏡像安裝依賴并打包成靜態(tài)文件
- 第二階段:將靜態(tài)文件放入nginx鏡像,并修改配置
文件內(nèi)容如下:
# 第一階段:node鏡像打包 FROM node:latest AS frontend-builder WORKDIR /build-app COPY . . RUN npm install RUN npm run build # 第二階段:nginx打包 FROM nginx:latest EXPOSE 80 WORKDIR /app # 替換nginx配置 COPY nginx.conf /etc/nginx/conf.d/default.conf # 將第一階段的靜態(tài)文件復(fù)制到nginx中 RUN rm -rf /usr/share/nginx/html RUN mkdir /usr/share/nginx/html COPY --from=frontend-builder /build-app/dist /usr/share/nginx/html # 運(yùn)行 CMD ["nginx", "-g", "daemon off;"]
打包部署
使用docker命令打包
- 鏡像名稱為"xxc-web:v1"
- 將鏡像上傳到docker倉庫或私有倉庫(Harbor)
運(yùn)行容器
# 打包鏡像 docker build -t xxc-web:v1 . # 上傳倉庫 # docker login -u <用戶名> -p <密碼> <倉庫地址> # docker push xxc-web:v1 # 運(yùn)行 docker run --name xxc-web -dp 1234:80 xxc-web:v1
- 如下運(yùn)行命令映射為1234端口,訪問 http://localhost:1234
以上就是前端項(xiàng)目容器化Docker打包部署方式詳解的詳細(xì)內(nèi)容,更多關(guān)于前端項(xiàng)目容器化Docker打包部署的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
docker自定義網(wǎng)橋docker0及docker的開啟,關(guān)閉,重啟命令操作
這篇文章主要介紹了docker自定義網(wǎng)橋docker0及docker的開啟,關(guān)閉,重啟命令操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
docker部署mysql8并設(shè)置可遠(yuǎn)程連接
本文主要介紹了docker部署mysql8并設(shè)置可遠(yuǎn)程連接,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
基于Docker搭建Graylog分布式日志采集系統(tǒng)的詳細(xì)過程
Graylog是一個(gè)開源的日志管理工具,支持日志收集、解析、存儲、搜索和可視化,它可以從各種數(shù)據(jù)源收集日志,并通過內(nèi)置的解析器將日志格式化,本文介紹基于Docker搭建Graylog分布式日志采集系統(tǒng),感興趣的朋友一起看看吧2025-02-02
docker安裝influxdb的詳細(xì)教程(性能測試)
這篇文章主要介紹了docker安裝influxdb的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
使用Docker compose編排Laravel應(yīng)用的方法
本篇文章主要介紹了使用Docker compose編排Laravel應(yīng)用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
docker和docker compose版本太低問題的解決方案
本文主要介紹了Docker和docker-compose版本過低導(dǎo)致的KeyError: 'ContainerConfig'錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03

