最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用docker容器來構(gòu)建前端項(xiàng)目過程

 更新時(shí)間:2026年03月09日 08:51:39   作者:linlongdeng  
文章介紹了如何使用Docker容器來解決前端項(xiàng)目打包問題,包括構(gòu)建鏡像、設(shè)置環(huán)境變量、加速構(gòu)建過程以及如何將node_modules直接打包到鏡像中,通過這種方式,可以確保每次打包的環(huán)境一致,避免因環(huán)境差異導(dǎo)致的打包失敗

先說一下背景,所以作者所在組織的前端項(xiàng)目使用了自定義的前端組件,放在了cnpm搭建的倉庫中,由于人員變動(dòng),源代碼已經(jīng)丟失,倉庫也被銷毀,只留了打包好的庫,所以每次打包都非常麻煩,再加上使用了node-sass包,對(duì)node版本要求特別高,原來打包在jenkins主機(jī)上使用npm命令來打包,非常容易出錯(cuò)。

后面我改用使用docker容器,使構(gòu)建的環(huán)境每次都一樣,避免了打包失敗的情況?,F(xiàn)在說一下步驟。

首先構(gòu)建一個(gè)打包鏡像

Dockerfile文件如下:

FROM node:11
WORKDIR /user/app
RUN npm config set registry  https://registry.npmmirror.com
RUN npm config set sass_binary_site=https://registry.npmmirror.com/binary.html?path=node-sass/
RUN npm config set cache '/user/app/node_cache'
COPY entrypoint.sh .
RUN chmod +x entrypoint.sh
ENTRYPOINT ["/user/app/entrypoint.sh"]

這里說明一下,這邊使用了基礎(chǔ)鏡像node:11,版本是根據(jù)需要來的,你也可以自己修改,npm config set都是設(shè)置node的變量,加速構(gòu)建過程,RUN npm config set cache是設(shè)置了node的緩存位置,構(gòu)建的時(shí)候,把這個(gè)緩存位置映射到主機(jī)上,加快下次構(gòu)建。

entrypoint.sh是構(gòu)建的腳本,以貼出來:

#!/bin/bash
cd 代碼位置
npm install
npm run build
echo "完成構(gòu)建"
sleep 3

構(gòu)建一下鏡像

docker build -t node-build:11 .

然后運(yùn)行容器

docker run -v  代碼位置:/user/app/代碼項(xiàng)目 -v /home/deng/web/node:/user/app/node_cache -it --rm node-build:11

如果這樣沒問題,就可以在看到構(gòu)建的程序了

正常打包代碼就這樣結(jié)束 ,但是也可以直接把node_modules包直接打到鏡像里頭去,這樣構(gòu)建的腳本就不要使用npm install。

讓打包鏡像的dockerfile就可以修改成這樣

FROM node:11
WORKDIR /user/app
RUN npm config set registry  https://registry.npmmirror.com
RUN npm config set sass_binary_site=https://registry.npmmirror.com/binary.html?path=node-sass/
RUN npm config set cache '/user/app/node_cache'
ADD node_modules.tar.gz  /user/app
COPY entrypoint.sh .
RUN chmod +x entrypoint.sh
ENTRYPOINT ["/user/app/entrypoint.sh"]

注意ADD node_modules.tar.gz  /user/app,這個(gè)命令就是把node_modules壓縮包放到容器目錄中去,ADD命令會(huì)自動(dòng)解壓。

entrypoint.sh改成這樣

#!/bin/bash
mv node_modules ./代碼位置/node_modules
cd 代碼位置
npm run build
echo "完成構(gòu)建"
sleep 3

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Docker x509 insecure registry的問題

    解決Docker x509 insecure registry的問題

    這篇文章主要介紹了解決Docker x509 insecure registry的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker鏡像分層的實(shí)現(xiàn)示例

    Docker鏡像分層的實(shí)現(xiàn)示例

    本文主要介紹了Docker鏡像分層的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Linux環(huán)境docker部署Firefox結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程使用瀏覽器測(cè)試的示例詳解

    Linux環(huán)境docker部署Firefox結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程使用瀏覽器測(cè)試的示例詳解

    在Docker中打開Firefox意味著我們將在一個(gè)Docker容器中運(yùn)行Firefox瀏覽器,這對(duì)于一些特殊的測(cè)試場(chǎng)景非常有用,例如需要在不同版本的瀏覽器中進(jìn)行測(cè)試,下面是一個(gè)簡(jiǎn)單的示例,演示如何在Docker中打開Firefox,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 修改Docker默認(rèn)鏡像和容器的存儲(chǔ)位置的方法

    修改Docker默認(rèn)鏡像和容器的存儲(chǔ)位置的方法

    本篇文章主要介紹了修改Docker默認(rèn)鏡像和容器的存儲(chǔ)位置的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • 2026年Docker常用命令及示例代碼大全

    2026年Docker常用命令及示例代碼大全

    本文詳細(xì)介紹了Docker常用命令的使用方法,包括啟動(dòng)、關(guān)閉、重啟Docker服務(wù),查看Docker狀態(tài)和版本,運(yùn)行和管理容器,管理鏡像,創(chuàng)建和刪除容器,操作,查看和管理網(wǎng)絡(luò),及DockerCompose的使用,文中提供了大量示例,方便用戶快速了解和掌握Docker的各項(xiàng)功能和命令
    2026-05-05
  • Flask應(yīng)用封裝成Docker服務(wù)的完整操作指南

    Flask應(yīng)用封裝成Docker服務(wù)的完整操作指南

    本文詳細(xì)介紹了如何使用Docker將Flask應(yīng)用容器化,包括實(shí)現(xiàn)原理、詳細(xì)操作步驟、進(jìn)階配置、常見問題及解決方案和生產(chǎn)環(huán)境注意事項(xiàng),需要的朋友可以參考下
    2025-04-04
  • 在IntelliJ IDEA中使用Docker的開發(fā)指南

    在IntelliJ IDEA中使用Docker的開發(fā)指南

    這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細(xì),對(duì)我們的使用Docker有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • Docker?Memcached?容器化部署的實(shí)現(xiàn)

    Docker?Memcached?容器化部署的實(shí)現(xiàn)

    memcached是一套分布式的高速緩存系統(tǒng),本文主要介紹了Docker?Memcached?容器化部署的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Docker上實(shí)現(xiàn)Redis集群搭建

    Docker上實(shí)現(xiàn)Redis集群搭建

    redis集群對(duì)于很多人來說非常熟悉,雖然集群搭建的文章在網(wǎng)上很多,但是今天給大家介紹的是在docker上實(shí)現(xiàn)Redis集群搭建,感興趣的可以了解下
    2021-05-05
  • 使用Docker-compose部署mysql的簡(jiǎn)單步驟

    使用Docker-compose部署mysql的簡(jiǎn)單步驟

    Docker-compose是Docker官方推出的一個(gè)工具,用于定義和運(yùn)行多個(gè) Docker 容器的應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于使用Docker-compose部署mysql的簡(jiǎn)單步驟,需要的朋友可以參考下
    2023-04-04

最新評(píng)論

行唐县| 孟津县| 大关县| 安泽县| 六安市| 郯城县| 宜春市| 遂平县| 厦门市| 兰考县| 田阳县| 万安县| 莫力| 道孚县| 安福县| 房产| 慈利县| 宽城| 临朐县| 呼图壁县| 大厂| 广饶县| 梅州市| 延寿县| 綦江县| 和静县| 文安县| 浦城县| 连江县| 阳春市| 蓬安县| 丘北县| 兰溪市| 通江县| 惠水县| 昌黎县| 德令哈市| 隆化县| 江城| 乌鲁木齐县| 泸定县|