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

docker啟動(dòng)時(shí)環(huán)境變量不生效的解決方法

 更新時(shí)間:2024年03月12日 14:55:09   作者:XUchenmp  
因項(xiàng)目需要多處部署,所以打包成docker鏡像以便于部署,本文主要介紹了docker啟動(dòng)時(shí)環(huán)境變量不生效的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下

前言

因項(xiàng)目需要多處部署,為了部署的方便,于是準(zhǔn)備將項(xiàng)目環(huán)境打包成docker鏡像以便于部署。mq、mysql這些在倉庫中都有現(xiàn)成的鏡像,雖然java和nginx的也都有,但是不知道當(dāng)時(shí)是怎么想的,就不想搞太多鏡像,也打算自己實(shí)踐一下docker踩踩坑,就拉了個(gè)debian的環(huán)境自己配。

問題

按照網(wǎng)上的教程在容器中配置Java環(huán)境,這點(diǎn)沒什么難的,學(xué)過Java的都能做到,我也確實(shí)成功了。然后在重啟驗(yàn)證時(shí)發(fā)現(xiàn)環(huán)境變量失效了,然后在網(wǎng)上搜索時(shí)發(fā)現(xiàn)在/etc/profile中設(shè)置的環(huán)境變量每次進(jìn)入時(shí)都需要source /etc/profile,這有些麻煩,然后找到了另外一種方式,可以把環(huán)境變量寫入~/.bashrc中,每次打開新的shell時(shí)都會(huì)執(zhí)行,聽著就比較符合我們的要求了,然后重啟以及重新進(jìn)入shell都驗(yàn)證一下,發(fā)現(xiàn)Java環(huán)境都生效。

然后寫個(gè)shell腳本,讓容器在啟動(dòng)時(shí)運(yùn)行我的各個(gè)服務(wù),退出容器并打包成鏡像。本以為大功告成了,誰知在測(cè)試鏡像能否正常運(yùn)行我的各個(gè)服務(wù)時(shí)報(bào)錯(cuò)了,又是Java環(huán)境問題。但是之前已經(jīng)驗(yàn)證過環(huán)境沒問題,進(jìn)入容器查看Java環(huán)境發(fā)現(xiàn)一切正常,沒有問題。于是退出容器重啟,結(jié)果還是因?yàn)闆]有Java環(huán)境報(bào)錯(cuò),這就很奇怪了,有點(diǎn)像量子力學(xué)了,觀察就有,不觀察就沒有。

既然是shell腳本運(yùn)行的時(shí)候沒有Java環(huán)境,那我們可以在腳本中配置Java環(huán)境就能解決這個(gè)問題,確實(shí)也有不少執(zhí)行腳本都這么做,但是我還是想知道環(huán)境變量為什么失效。

解決思路

首先懷疑的肯定是加載順序,自己寫的腳本執(zhí)行得比~/.bashrc快。那么在init.sh中寫入以下內(nèi)容。

在這里插入圖片描述

在~/.bashrc中寫入以下內(nèi)容

在這里插入圖片描述

然后把容器提交成鏡像后啟動(dòng)鏡像docker run -itd config_init_test:2.0 /init.sh
在Docker Desktop中發(fā)現(xiàn)壓根就沒執(zhí)行~/.bashrc中的內(nèi)容

在這里插入圖片描述

順著~/.bashrc中的命令沒有執(zhí)行這個(gè)線索去查,仔細(xì)閱讀之后才意識(shí)到我在上面加粗的那句“每次打開新的shell時(shí)都會(huì)執(zhí)行,那不打開shell就不會(huì)執(zhí)行,而絕大多數(shù)運(yùn)行鏡像的場(chǎng)景都是后臺(tái)運(yùn)行,不會(huì)打開shell,環(huán)境變量的設(shè)置理所當(dāng)然的失效。

解決方案

1、在shell腳本設(shè)置環(huán)境變量
2、在Dockerfile中使用ENV命令
一開始我是用的方案2,但是語法沒寫對(duì)導(dǎo)致我以為這種用法不行才換的寫入~/.bashrc這個(gè)方案,然后就踩了這個(gè)坑。。。

總結(jié)

對(duì)Linux不熟悉,平時(shí)接觸得也少,這算是Linux的基礎(chǔ)知識(shí)吧,沒事還是多學(xué)學(xué)基礎(chǔ)知識(shí),特別是想要用好docker的話Linux基礎(chǔ)知識(shí)必不可少。

到此這篇關(guān)于docker啟動(dòng)時(shí)環(huán)境變量不生效的解決方法的文章就介紹到這了,更多相關(guān)docker啟動(dòng)時(shí)環(huán)境變量不生效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于VS Code的Docker調(diào)試環(huán)境搭建過程

    基于VS Code的Docker調(diào)試環(huán)境搭建過程

    本文詳細(xì)介紹了如何在VSCode中配置和使用Docker容器進(jìn)行Autoware項(xiàng)目的開發(fā)調(diào)試,通過安裝Docker和VSCode插件,配置開發(fā)容器,掛載本地目錄,以及使用colcon編譯項(xiàng)目,使得開發(fā)環(huán)境更加高效和一致
    2026-02-02
  • docker測(cè)試時(shí)候命令無法補(bǔ)全的解決方法

    docker測(cè)試時(shí)候命令無法補(bǔ)全的解決方法

    因?yàn)樽罱趯W(xué)習(xí)使用Docker,所以出現(xiàn)了好多的問題,昨天遇到的一個(gè)問題是在docker測(cè)試時(shí)候發(fā)現(xiàn)命令無法補(bǔ)全,通過查找資料最后解決了,現(xiàn)在將方法分享給有需要的人,大家可以參考學(xué)習(xí)。
    2016-11-11
  • 創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法

    創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法

    這篇文章主要介紹了創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • 讓非root用戶構(gòu)建Docker鏡像的三種方法

    讓非root用戶構(gòu)建Docker鏡像的三種方法

    在默認(rèn)情況下,Docker?需要?root?權(quán)限或?sudo?才能運(yùn)行,這對(duì)于日常開發(fā)和?CI/CD?流水線可能不夠方便,那么,如何讓?非?root?用戶?也能構(gòu)建和運(yùn)行?Docker?容器呢?本篇文章將介紹?三種方法?來實(shí)現(xiàn)這一目標(biāo),需要的朋友可以參考下
    2025-04-04
  • 使用Docker將容器打成鏡像的方法步驟

    使用Docker將容器打成鏡像的方法步驟

    本文主要介紹了使用Docker將容器打成鏡像的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Docker Volumes使用方法詳解

    Docker Volumes使用方法詳解

    本文詳細(xì)介紹了Docker Volumes的概念、特點(diǎn)、類型、創(chuàng)建和使用方法,以及與其他數(shù)據(jù)持久化機(jī)制的區(qū)別和最佳實(shí)踐,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 使用docker compose一鍵部署多個(gè)服務(wù)的方法

    使用docker compose一鍵部署多個(gè)服務(wù)的方法

    docker compose 是 docker 官方的開源項(xiàng)目,用來實(shí)現(xiàn)對(duì) docker 容器集群的快速編排,通過docker-compose可以一鍵創(chuàng)建和刪除多個(gè)容器 ,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-01-01
  • 加速拉取MySQL Docker鏡像的兩種方法

    加速拉取MySQL Docker鏡像的兩種方法

    在使用 Docker 部署 MySQL 時(shí),許多開發(fā)者會(huì)遇到拉取鏡像速度緩慢的問題,這主要是由于 Docker Hub 的服務(wù)器在國(guó)外,網(wǎng)絡(luò)延遲較高,幸運(yùn)的是,我們可以通過配置國(guó)內(nèi)鏡像加速器或使用國(guó)內(nèi)鏡像倉庫的代理地址來解決這一問題,本文將詳細(xì)介紹這兩種方法,需要的朋友可以參考下
    2025-07-07
  • 快速設(shè)置Docker的三種網(wǎng)絡(luò)代理配置方式

    快速設(shè)置Docker的三種網(wǎng)絡(luò)代理配置方式

    這篇文章主要介紹了快速設(shè)置Docker的三種網(wǎng)絡(luò)代理配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Docker如何制作自己鏡像并上傳dockerhub

    Docker如何制作自己鏡像并上傳dockerhub

    這篇文章主要介紹了Docker如何制作自己鏡像并上傳dockerhub,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

东宁县| 赤壁市| 定州市| 滦平县| 怀远县| 拉孜县| 洛南县| 探索| 瑞昌市| 普陀区| 革吉县| 双桥区| 米泉市| 铜梁县| 旬邑县| 博湖县| 射阳县| 长海县| 南平市| 伊吾县| 大荔县| 茌平县| 清丰县| 孟津县| 彭阳县| 迁西县| 泸州市| 正镶白旗| 海盐县| 清原| 延川县| 衡东县| 离岛区| 江孜县| 庆安县| 广平县| 旺苍县| 玛纳斯县| 佛教| 浮梁县| 峨边|