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

詳解Docker如何在前端項(xiàng)目動(dòng)態(tài)插入并使用變量

 更新時(shí)間:2024年04月02日 11:13:29   作者:Evan不懂前端  
這篇文章主要為大家詳細(xì)介紹如何在Docker前端鏡像中設(shè)置變量以及使用變量的方法,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下

前言

根據(jù)項(xiàng)目需求,在實(shí)現(xiàn)登出功能時(shí),需要根據(jù)測(cè)試環(huán)境和生產(chǎn)環(huán)境調(diào)用不同的登出URL。本文將介紹如何在Docker前端鏡像中設(shè)置變量以及使用變量的方法。

解決辦法

在生成前端容器的階段,可以使用同一個(gè)鏡像,根據(jù)不同的環(huán)境傳入?yún)?shù)來創(chuàng)建不同的前端容器。下面將分享一個(gè)在容器執(zhí)行階段動(dòng)態(tài)插入并使用變量的實(shí)例。

步驟

1.在根目錄創(chuàng)建start.sh文件,文件內(nèi)容如下:

#!/usr/bin/env sh

cat /etc/nginx/nginx.conf
nginx -g "daemon off;"

注: #!/usr/bin/env sh 并不是注釋的意思,而是選擇編譯語言的意思。建議使用sh,因?yàn)閎ash可能不是每臺(tái)服務(wù)器都安裝的。

注: 為什么要加nginx -g "daemon off;"?

因?yàn)橐屓萜髂艹掷m(xù)運(yùn)行,必須要有前臺(tái)進(jìn)程,這里將nginx轉(zhuǎn)為前臺(tái)進(jìn)程。

2.在Dockerfile中復(fù)制start.sh,將其從容器外復(fù)制到容器內(nèi):

...
COPY start.sh /app/start.sh

3.在根目錄創(chuàng)建nginx.conf.template文件,首先從nginx.conf復(fù)制代碼,然后在文件的http -> server下添加ENV_VARS占位符,代碼如下:

http {
    ...
    server {
        .....
        location /env.json {
            default_type application/json;
            return 200 '${ENV_VARS}';
        }
    }
}

4.在項(xiàng)目的服務(wù)器端創(chuàng)建一個(gè)獲取變量的方法,代碼如下:

type Env = {
  logoutUrl?: string;
};

export async function getEnvironmentVariables() {
  return request<Env>('/env.json', { method: 'GET' });
}

5.在項(xiàng)目代碼中添加使用變量的方法,代碼如下:

const logout = () => {
    getEnvironmentVariables()
      .then((data) => {
        const logoutUrl = data?.logoutUrl;
        if (logoutUrl) {
         ...
        }
      })
      .catch((e) => {
        ...
      });
  };

6.在正常構(gòu)建鏡像之后,在生成容器時(shí),可以通過環(huán)境變量傳參來替換原前端nginx.conf.template文件中的ENV_VARS字符串:

docker run -e ENV_VARS='{"logoutUrl": "xxxxxx"}' --name test -p 81:8000 -itd swr.test:v0.0.31

sh start.sh

注:如果替換的環(huán)境變量是JSON格式,需要將變量值用單引號(hào)包含,變量值內(nèi)的屬性值使用雙引號(hào)。例如:ENV_VARS='{"logoutUrl": "xxxxxx"}'

后言

這個(gè)設(shè)計(jì)使得在前端獨(dú)立容器化部署時(shí),能夠通過環(huán)境變量解耦登出地址,避免了一次又一次的構(gòu)建鏡像工作量。

到此這篇關(guān)于詳解Docker如何在前端項(xiàng)目動(dòng)態(tài)插入并使用變量的文章就介紹到這了,更多相關(guān)Docker前端插入并使用變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker與docker-compose中volume參數(shù)的使用方式

    Docker與docker-compose中volume參數(shù)的使用方式

    文章介紹了Docker中的數(shù)據(jù)卷Volume的概念及其在宿主機(jī)和容器之間的數(shù)據(jù)共享和持久化,它詳細(xì)說明了兩種數(shù)據(jù)掛載方式:通過宿主機(jī)絕對(duì)路徑掛載和通過卷標(biāo)映射掛載,包括匿名掛載和具名掛載,同時(shí),文章還展示了如何通過docker命令查看數(shù)據(jù)卷的宿主機(jī)目錄
    2024-11-11
  • docker部署etcd實(shí)踐過程

    docker部署etcd實(shí)踐過程

    文章介紹了如何創(chuàng)建網(wǎng)絡(luò)、啟動(dòng)Etcd服務(wù)器實(shí)例并將其附加到app-tier網(wǎng)絡(luò),以及如何啟動(dòng)Etcd客戶端實(shí)例進(jìn)行查詢
    2025-12-12
  • docker?build與Dockerfile問題

    docker?build與Dockerfile問題

    這篇文章主要介紹了docker?build與Dockerfile問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • linux下使用Docker Compose部署Spug實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問的過程

    linux下使用Docker Compose部署Spug實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問的過程

    這篇文章主要介紹了linux下使用Docker Compose部署Spug實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問,本例演示搭建使用docker compose 方式安裝Spug,并結(jié)合cpolar,需要的朋友可以參考下
    2023-11-11
  • dockercompose應(yīng)用及說明

    dockercompose應(yīng)用及說明

    文章主要介紹了如何使用?Docker?Compose?一鍵開啟常用中間件,并提供了詳細(xì)的安裝步驟和測(cè)試方法,同時(shí),還總結(jié)了一些常用的?Docker?命令
    2026-01-01
  • docker安裝rabbitmq無法進(jìn)入管理頁面的問題

    docker安裝rabbitmq無法進(jìn)入管理頁面的問題

    這篇文章主要介紹了docker安裝rabbitmq無法進(jìn)入管理頁面的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • docker容器增加端口映射全過程(修改配置文件方式)

    docker容器增加端口映射全過程(修改配置文件方式)

    文章詳細(xì)描述了如何通過修改Docker容器的配置文件來增加端口映射,以解決已經(jīng)運(yùn)行的容器需要增加端口映射的問題,以MySQL容器為例進(jìn)行了具體操作步驟的說明
    2024-11-11
  • Ubuntu中Docker報(bào)錯(cuò)“Cannot?connect?to?the?Docker?daemon?at?unix:///var/run/docker.sock”錯(cuò)誤解決辦法

    Ubuntu中Docker報(bào)錯(cuò)“Cannot?connect?to?the?Docker?daemon?at

    這篇文章主要介紹了Ubuntu中Docker報(bào)錯(cuò)“Cannot?connect?to?the?Docker?daemon?at?unix:///var/run/docker.sock”錯(cuò)誤解決辦法的相關(guān)資料,這個(gè)問題通常表示Docker?守護(hù)進(jìn)程未運(yùn)行或者當(dāng)前用戶沒有權(quán)限訪問Docker守護(hù)進(jìn)程,需要的朋友可以參考下
    2026-04-04
  • Docker容器跨主機(jī)通信overlay網(wǎng)絡(luò)的解決方案

    Docker容器跨主機(jī)通信overlay網(wǎng)絡(luò)的解決方案

    Overlay網(wǎng)絡(luò)是指在不改變現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施的前提下,通過某種約定通信協(xié)議,把二層報(bào)文封裝在IP報(bào)文之上的新的數(shù)據(jù)格式,本文給大家介紹Docker容器跨主機(jī)通信overlay網(wǎng)絡(luò)的方案,感興趣的朋友一起看看吧
    2022-02-02
  • 使用docker搭建嵌入式Linux開發(fā)環(huán)境

    使用docker搭建嵌入式Linux開發(fā)環(huán)境

    本文主要介紹了使用docker搭建嵌入式Linux開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08

最新評(píng)論

额尔古纳市| 枣阳市| 永城市| 鲁甸县| 含山县| 裕民县| 临高县| 桓仁| 睢宁县| 莆田市| 小金县| 达拉特旗| 浦城县| 县级市| 南郑县| 库尔勒市| 普定县| 华安县| 文昌市| 图们市| 高碑店市| 武安市| 都兰县| 安国市| 宝清县| 扶风县| 远安县| 清苑县| 奎屯市| 衡东县| 清水河县| 堆龙德庆县| 阜新| 原平市| 嘉祥县| 泸溪县| 霞浦县| 嘉鱼县| 安宁市| 阜宁县| 永川市|