?
This document uses PHP Chinese website manual Release
撰寫中有多個(gè)部分在某種意義上處理環(huán)境變量。這個(gè)頁(yè)面應(yīng)該可以幫助你找到你需要的信息。
可以在 shell 中使用環(huán)境變量填充復(fù)合文件中的值:
web: image: "webapp:${TAG}"
有關(guān)更多信息,請(qǐng)參見變量替換節(jié)中的“撰寫文件引用”。
可以在服務(wù)的容器中設(shè)置環(huán)境變量?!碍h(huán)境”鍵,就像docker run -e VARIABLE=VALUE ...
*
web: environment: - DEBUG=1
可以將環(huán)境變量直接從shell傳遞到服務(wù)的容器,“環(huán)境”鍵不給他們一個(gè)價(jià)值,就像docker run -e VARIABLE ...
*
web: environment: - DEBUG
DEBUG
容器中的變量的值將從運(yùn)行復(fù)合的 shell 中相同變量的值中提取。
可以將多個(gè)環(huán)境變量從外部文件傳遞到服務(wù)的容器,env_file
選項(xiàng),就像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
容器中的變量的值將從運(yùn)行復(fù)合的 shell 中的相同變量的值中提取。
控件中引用的任何環(huán)境變量或用于配置撰寫的任何環(huán)境變量的默認(rèn)值。環(huán)境文件命名.env
*
$ cat .env TAG=v1.5$ cat docker-compose.yml version: '3'services: web: image: "webapp:${TAG}"
當(dāng)你運(yùn)行的時(shí)候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è)置了一個(gè)不同的值,那么這個(gè)替換就會(huì)image
使用它:
$ export TAG=v2.0$ docker-compose config version: '3'services: web: image: 'webapp:v2.0'
當(dāng)使用 shell 中 environment
變量和env_file
配置文件提供值時(shí),環(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
你可以用它來測(cè)試?yán)?NodeJSCLI 中的容器:
$ docker-compose exec api node> process.env.NODE_ENV'production'
有任何ARG
或ENV
設(shè)置在Dockerfile
只有在否碼頭工人作曲進(jìn)入environment
或env_file
NodeJS 容器專用材料:如果你有package.json
進(jìn)入script:start
就像NODE_ENV=test node server.js
,這將推翻你的docker-compose.yml檔案中任何文件。
有幾個(gè)環(huán)境變量可供您配置 Docker Compose 命令行行為。它們以 CLI 環(huán)境變量開頭COMPOSE_
或DOCKER_
記錄在 CLI 環(huán)境變量中。
在 v1 撰寫文件中使用 'links' 選項(xiàng)時(shí),將為每個(gè)鏈接創(chuàng)建環(huán)境變量。它們記錄在 Link 環(huán)境變量參考中。但請(qǐng)注意,這些變量已被棄用 - 您應(yīng)該將鏈接別名用作主機(jī)名。