?
本文檔使用 PHP中文網(wǎng)手冊 發(fā)布
撰寫中有多個部分在某種意義上處理環(huán)境變量。這個頁面應(yīng)該可以幫助你找到你需要的信息。
可以在 shell 中使用環(huán)境變量填充復(fù)合文件中的值:
web: image: "webapp:${TAG}"
有關(guān)更多信息,請參見變量替換節(jié)中的“撰寫文件引用”。
可以在服務(wù)的容器中設(shè)置環(huán)境變量。“環(huán)境”鍵,就像docker run -e VARIABLE=VALUE ...
*
web: environment: - DEBUG=1
可以將環(huán)境變量直接從shell傳遞到服務(wù)的容器,“環(huán)境”鍵不給他們一個價值,就像docker run -e VARIABLE ...
*
web: environment: - DEBUG
DEBUG
容器中的變量的值將從運行復(fù)合的 shell 中相同變量的值中提取。
可以將多個環(huán)境變量從外部文件傳遞到服務(wù)的容器,env_file
選項,就像docker run --env-file=FILE ...
*
web: env_file: - web-variables.env
就像docker run -e
,則可以在一次性容器上設(shè)置環(huán)境變量docker-compose run -e
*。
docker-compose run -e DEBUG=1 web python console.py
還可以通過不給變量值從 shell 傳遞變量:
docker-compose run -e DEBUG web python console.py
DEBUG
容器中的變量的值將從運行復(fù)合的 shell 中的相同變量的值中提取。
控件中引用的任何環(huán)境變量或用于配置撰寫的任何環(huán)境變量的默認值。環(huán)境文件命名.env
*
$ cat .env TAG=v1.5$ cat docker-compose.yml version: '3'services: web: image: "webapp:${TAG}"
當(dāng)你運行的時候docker-compose up
,web
上面定義的服務(wù)使用圖像webapp:v1.5
.您可以使用配置命令,它將已解析的應(yīng)用程序配置打印到終端:
$ docker-compose config version: '3'services: web: image: 'webapp:v1.5'
shell 中的值優(yōu)先于.env
文件中指定的值。如果你TAG
在你的
shell 中設(shè)置了一個不同的值,那么這個替換就會image
使用它:
$ export TAG=v2.0$ docker-compose config version: '3'services: web: image: 'webapp:v2.0'
當(dāng)使用 shell 中 environment
變量和env_file
配置文件提供值時,環(huán)境變量的值將首先從環(huán)境密鑰獲取,然后從環(huán)境文件獲取,然后從 ** -entry ** 獲取:Dockerfile
ENV
$ 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
你可以用它來測試?yán)?NodeJSCLI 中的容器:
$ docker-compose exec api node> process.env.NODE_ENV'production'
有任何ARG
或ENV
設(shè)置在Dockerfile
只有在否碼頭工人作曲進入environment
或env_file
NodeJS 容器專用材料:如果你有package.json
進入script:start
就像NODE_ENV=test node server.js
,這將推翻你的docker-compose.yml檔案中任何文件。
有幾個環(huán)境變量可供您配置 Docker Compose 命令行行為。它們以 CLI 環(huán)境變量開頭COMPOSE_
或DOCKER_
記錄在 CLI 環(huán)境變量中。
在 v1 撰寫文件中使用 'links' 選項時,將為每個鏈接創(chuàng)建環(huán)境變量。它們記錄在 Link 環(huán)境變量參考中。但請注意,這些變量已被棄用 - 您應(yīng)該將鏈接別名用作主機名。