濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解Docker Compose 中可用的環(huán)境變量問題

詳解Docker Compose 中可用的環(huán)境變量問題

熱門標簽:外呼系統(tǒng)的經(jīng)營范圍 外呼系統(tǒng)不彈窗 安陽ai電銷機器人軟件 申請400電話價格多少 廈門營銷外呼系統(tǒng)平臺 涪陵商都400電話開通辦理 云會外呼系統(tǒng) 柳州市機器人外呼系統(tǒng)報價 智能電話機器人坐席

Compose 的多個部分在某種情況下處理環(huán)境變量。本教程可以幫助你找到所需的信息。

1. 替換Compose文件中的環(huán)境變量

可以使用 shell 中的環(huán)境變量填充 Compose 文件中的值:

web:
 image: "webapp:${TAG}"

更多信息請參考 Compose 文件手冊中的 Variable substitution 章節(jié)。

2. 設置容器中的環(huán)境變量

可以通過 environment 關鍵字設置服務容器中的環(huán)境變量,就跟使用 docker run -e VARIABLE=VALUE ... 一樣:

web:
 environment:
 - DEBUG=1

3. 將環(huán)境變量傳遞到容器

在使用 environment 關鍵字時不賦值,就可以將 shell 中的環(huán)境變量傳遞給服務容器,就跟使用 docker run -e VARIABLE ... 一樣:

web:
 environment:
 - DEBUG

容器中的 DEBUG 變量的值從運行 Compose 的 shell 中的同名變量中獲取。

4. “env_file”配置選項

可以通過 env_file 命令使用外部文件將多個環(huán)境變量傳遞到服務容器,就跟使用 docker run --env-file=FILE ... 一樣:

web:
 env_file:
 - web-variables.env

5. 使用 ‘docker-compose run'設置環(huán)境變量

就像 docker run -e 命令一樣,可以使用 docker-compose run -e 設置一次性容器上的環(huán)境變量:

docker-compose run -e DEBUG=1 web python console.py

也可以通過從 shell 中傳遞一個變量,而不是直接賦值:

docker-compose run -e DEBUG web python console.py

容器中的 DEBUG 變量的值從運行 Compose 的 shell 中的同名變量中獲取。

6. “.env”文件

可以在名為.env 的環(huán)境文件 中為 Compose 文件中引用的任何環(huán)境變量設置默認值,或者用于配置 Compose:

$ cat .env
TAG=v1.5

$ cat docker-compose.yml
version: '3'
services:
 web:
 image: "webapp:${TAG}"

運行 docker-compose up 時,上面定義的 web 服務使用 webapp:v1.5 鏡像。可以通過config 命令 將應用程序的配置信息打印到終端來驗證:

$ docker-compose config

version: '3'
services:
 web:
 image: 'webapp:v1.5'

shell 中的值優(yōu)先于 .env 文件中指定的值。如果在 shell 中將 TAG 設置為不同的值,則鏡像中將使用該值:

$ export TAG=v2.0
$ docker-compose config

version: '3'
services:
 web:
 image: 'webapp:v2.0'

當在多個文件中設置相同的環(huán)境變量時,以下是 Compose 用于選擇要使用的值的優(yōu)先級:

  • Compose 文件
  • Environment 文件
  • Dockerfile
  • 變量未定義

在下面的例子中,我們在 Environment 文件和 Compose 文件上設置了相同的環(huán)境變量:

$ cat ./Docker/api/api.env
NODE_ENV=test

$ cat docker-compose.yml
version: '3'
services:
 api:
 image: 'node:6-alpine'
 env_file:
  - ./Docker/api/api.env
 environment:
  - NODE_ENV=production

運行容器時,在 Compose 文件中定義的環(huán)境變量優(yōu)先。

$ docker-compose exec api node

process.env.NODE_ENV
'production'

只有在 environment env_file 沒有 Docker Compose 條目時,Dockerfile 中的任何 ARG ENV 設置才會評估(evaluate)。

NodeJS 容器的細節(jié)

如果你有腳本的 package.json 條目像 NODE_ENV=test node server.js 一樣啟動,那么這將覆蓋 docker-compose.yml 文件中的任何設置。

7. 使用環(huán)境變量配置 Compose

有幾個環(huán)境變量可用來配置 Docker Compose 命令行行為。它們以 COMPOSE_ 或 DOCKER_ 開頭,并記錄在CLI 環(huán)境變量中。

8. 通過 link 創(chuàng)建環(huán)境變量

在第一版 Compose 文件中使用 links 選項時,會為每個鏈接創(chuàng)建環(huán)境變量。它們記錄在 Link環(huán)境變量參考 中。

但是,這些變量已被棄用。link 改為為主機創(chuàng)建別名。

原文地址

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:晉城 撫順 巴中 孝感 福州 綏化 蕪湖 南充

巨人網(wǎng)絡通訊聲明:本文標題《詳解Docker Compose 中可用的環(huán)境變量問題》,本文關鍵詞  詳解,Docker,Compose,中可,用的,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Docker Compose 中可用的環(huán)境變量問題》相關的同類信息!
  • 本頁收集關于詳解Docker Compose 中可用的環(huán)境變量問題的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    玉田县| 陇川县| 南岸区| 襄城县| 乌海市| 尼玛县| 东乌珠穆沁旗| 新和县| 栾城县| 大城县| 碌曲县| 江达县| 海伦市| 泾源县| 耒阳市| 林口县| 晋城| 铜川市| 榆社县| 枣阳市| 六盘水市| 正镶白旗| 阜新市| 西华县| 兴宁市| 万源市| 日喀则市| 邢台市| 沈阳市| 依安县| 崇文区| 贵州省| 临沧市| 普定县| 缙云县| 江达县| 东乌珠穆沁旗| 托克逊县| 东海县| 红原县| 都安|