使用Docker完成前端部署詳細(xì)圖文教程
1.打包前端項(xiàng)目
1. 通過項(xiàng)目中的package.json文件,找到“build”運(yùn)行進(jìn)行打包

2. 打包成功后生成dist文件夾,就是打包好的項(xiàng)目

3. 在根目錄中創(chuàng)建一個(gè)Docker文件夾中創(chuàng)建nginx.conf配置文件, 同時(shí)在根目錄中創(chuàng)建一個(gè)Dockerfile文件
圖例:

nginx.conf
server {
listen 80;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /usr/share/nginx/html;
include /etc/nginx/mime.types;
location / {
try_files $uri /index.html;
}1) gzip on; - 啟用Gzip壓縮功能。
2) gzip_min_length 1k; - 指定壓縮的最小文件大小。只有大于等于1千字節(jié)的文件才會(huì)被壓縮。
3) gzip_comp_level 9; - 設(shè)置Gzip壓縮的級(jí)別。級(jí)別從1到9,9為最高壓縮比,但也會(huì)消耗更多的CPU資源。
4) gzip_types - 指定需要進(jìn)行Gzip壓縮的文件類型。在這個(gè)例子中,配置了多種類型的文件,包括純文本文件(text/plain)、CSS文件(text/css)、JavaScript文件(text/javascript、application/json、application/javascript、application/x-javascript)以及XML文件(application/xml)。
5) gzip_vary on; - 在HTTP響應(yīng)頭中添加Vary標(biāo)頭,以通知緩存服務(wù)器根據(jù)Accept-Encoding頭來提供正確的壓縮版本。
6) gzip_disable "MSIE [1-6]\.”; - 禁用特定的瀏覽器壓縮。在這個(gè)例子中,它禁用了Internet Explorer 1至6版本的Gzip壓縮。這是因?yàn)樵缙诎姹镜腎E在處理Gzip壓縮時(shí)可能存在兼容性問題。
Dockerfile
FROM nginx WORKDIR /usr/share/nginx/html/ USER root COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf COPY ./dist /usr/share/nginx/html/ EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
1) FROM nginx : 安裝nginx
2) WORKDIR : 工作目錄,容器中執(zhí)行命令時(shí)的默認(rèn)位置
3) COPY :拷貝,從執(zhí)行目錄拷貝指定文件打到容器中的指定目錄
4) EXPOSE :聲明容器內(nèi)的服務(wù)將監(jiān)聽的端口(指令僅僅是一種文檔化的操作,它并不會(huì)自動(dòng)在容器啟動(dòng)時(shí)打開這些端口或配置網(wǎng)絡(luò)連接)
5) CMD 指定容器啟動(dòng)時(shí)要執(zhí)行的默認(rèn)命令或可執(zhí)行文件的指令
4.壓縮文件為了上傳到服務(wù)器(按照上圖為例)
把三個(gè)紅框,壓縮成一個(gè)壓縮包。

2.服務(wù)器項(xiàng)目上線
1.docker安裝
參考文檔:http://www.fzitv.net/article/153865.htm
2.壓縮包上傳到服務(wù)器
把打包好的user-center-frontend.zip上傳到服務(wù)器的指定目錄,這里以 /root/myapp 目錄為例
1.創(chuàng)建myapp目錄
mkdir /root/myapp
2.把壓縮包放在目錄里
3.進(jìn)到myapp文件夾,解壓文件
unzip user-center-frontend.zip -d user-center-frontend
4.進(jìn)入user-center-frontend文件夾執(zhí)行命令,后面"."不要忽略
docker build -t user-center-frontend:v0.0.1 .
docker build -t 鏡像名稱:版本號(hào) .
5.運(yùn)行docker鏡像
1.查看docker 鏡像 docker images 2.根據(jù)打包好的鏡像,并運(yùn)行docker docker run -d -p 80:80 user-center-frontend:v0.0.1 3.查看容器運(yùn)行狀態(tài) docker ps
項(xiàng)目部署成功
總結(jié)
到此這篇關(guān)于使用Docker完成前端部署的文章就介紹到這了,更多相關(guān)Docker前端部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker如何在一個(gè)容器內(nèi)部署多個(gè)服務(wù)
這篇文章主要介紹了docker如何在一個(gè)容器內(nèi)部署多個(gè)服務(wù),思路是這樣的首先拿到你的httpd,以及你的springBoot,合并他們的Dockerfile,然后打包,然后啟動(dòng)的時(shí)候啟動(dòng)多個(gè)端口(httpd的端口和你服務(wù)的端口),需要的朋友可以參考下2024-01-01
Docker出現(xiàn)Cannot connect to the Docker daemon. Is the docker d
這篇文章主要介紹了Docker出現(xiàn)Cannot connect to the Docker daemon. Is the docker daemon running on this host錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12
Docker容器處于Removal in process無法刪除問題及解決
這篇文章主要介紹了Docker容器處于Removal in process無法刪除問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-07-07
Docker實(shí)現(xiàn)導(dǎo)入導(dǎo)出鏡像(Image)文件的代碼示例
在 Docker 中,鏡像(Image)是容器的基礎(chǔ),包含了應(yīng)用程序運(yùn)行所需的所有文件系統(tǒng)和配置,有時(shí),我們需要將 Docker 鏡像導(dǎo)出到文件中,以便在其他地方使用,以下將詳細(xì)介紹如何使用 Docker 導(dǎo)入導(dǎo)出鏡像文件,需要的朋友可以參考下2024-08-08
Docker部署Ragflow(完美解決502 bad gateway)
本文主要介紹了Docker部署Ragflow,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
使用Dockerfile創(chuàng)建自定義鏡像的詳細(xì)步驟
使用 Dockerfile 創(chuàng)建自定義鏡像的過程非常清晰,通常包括定義基礎(chǔ)鏡像、安裝依賴、復(fù)制代碼、設(shè)置環(huán)境變量和啟動(dòng)命令等步驟,下面詳細(xì)講解從零創(chuàng)建自定義鏡像的完整流程,需要的朋友可以參考下2025-06-06

