docker-compose环境变量
生活随笔
收集整理的這篇文章主要介紹了
docker-compose环境变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹
在項目中,往往需要在 docker-compose.yml 文件中使用環境變量來控制不同的條件和使用場景,docker-compose支持多級設置環境變量。
docker-compose.yml 文件中引用的環境變量,它們的優先級如下:
Compose file Shell environment variables Environment file Dockerfile Variable is not defined注意:
查看當前配置命令
docker-compose config環境變量的設置方式
compose file
version: '2' services:data-tag-biz:image: 192.168.1.XX/xxxx/data-standard-biz:9.0network_mode: "host"restart: alwaysports:- 10015:9015environment:- NACOS-HOST=${NACOS_HOST}- SW_NAME=test:${SV_NAME}- SW_SERVICES=192.168.1.XX:11800- TRACK=-javaagent:/opt/skywalking-agent.jar- JAVA_OPTS=-Xms512m -Xmx1024m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGCcontainer_name: data-standard-biz-9shell環境變量
export SV_NAME=data-standard-biz環境變量文件
docker原生命令
docker run --env-file=web-variables.envdocker file中指定
version: '3' services:data-tag-biz:env_file:- file.env #相對于docker-compose.yml文件的位置。environment:- SV_NAME=data-standard-biz- NACOS-HOST=${NACOS_HOST}- SW_NAME=test:${SV_NAME}- SW_SERVICES=192.168.1.XX:11800- TRACK=-javaagent:/opt/skywalking-agent.jar- JAVA_OPTS=-Xms512m -Xmx1024m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGCcontainer_name: data-standard-biz-9 #file.env SV_NAME=data-standard-biz-envfile ENV_VALUE=env-value NOOP=NO OP KEYdocker-compose config輸出:
services:data-tag-biz:container_name: data-standard-biz-9environment:ENV_FILE: '' #沒有引用到的變量ENV_VALUEENV_VALUE: env-value # 自動加入的JAVA_OPTS: -Xms512m -Xmx1024m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGCNACOS-HOST: 192.168.1.XXNOOP: NO OP KEY #自動加入的。SV_NAME: data-standard-bizSW_NAME: test:data-standard-biz-envSW_SERVICES: 192.168.1.XX:11800TRACK: -javaagent:/opt/skywalking-agent.jarimage: 192.168.1.36/xxxx/data-standard-biz:9.0network_mode: hostports:- 10015:9015/tcprestart: always version: '3.0'docker-compose文件中的變量是引用不到 環境文件中定義的變量的。環境文件中定義的所有變量是僅相對于容器可見的。
環境變量文件中的所有變量都會自動加到變量列表中,不需要在docker-compose中定義。
.env 文件
在docker-compose.yml同級目錄中加入.env文件,則可以設置docker-compose環境變量的默認值,可以在docker-compose中引用到的。
此文件可以為大量的變量配置默認值,用來代替${var:-defaultvalue}
version: '3' services:data-tag-biz:... ...environment:- SV_NAME=data-standard-biz- NACOS-HOST=${NACOS_HOST}- SW_NAME=test:${SV_NAME} #如果不設置,則默認使用 .env中默認值。 ... ... # .env SV_NAME=data-standard-biz-env TEST_ENV=xxxxxxxxdocker-compose config輸出:
services:data-tag-biz:container_name: data-standard-biz-9environment:ENV_FILE: ''ENV_VALUE: env-valueJAVA_OPTS: -Xms512m -Xmx1024m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGCNACOS-HOST: 192.168.1.XXNOOP: NO OP KEYSV_NAME: data-standard-bizSW_NAME: test:data-standard-biz-env #使用了 .env中默認值。SW_SERVICES: 192.168.1.XX:11800TRACK: -javaagent:/opt/skywalking-agent.jarimage: 192.168.1.XX/xxxx/data-standard-biz:9.0network_mode: hostports:- 10015:9015/tcprestart: always version: '3.0'Compose CLI 環境變量
Compose CLI(compose command-line 即 docker-compose 程序)能夠識別名稱為 COMPOSE_PROJECT_NAME 和 COMPOSE_FILE 等環境變量(具體支持的環境變量請參考這里)。通過設置這些變量可以控制docker-compose的行為。
總結
以上是生活随笔為你收集整理的docker-compose环境变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装vue-element-admin出
- 下一篇: 私服服务器刷怪文件叫什么,《奇迹》关于刷