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