日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker-compose环境变量

發布時間:2024/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker-compose环境变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

在項目中,往往需要在 docker-compose.yml 文件中使用環境變量來控制不同的條件和使用場景,docker-compose支持多級設置環境變量。

docker-compose.yml 文件中引用的環境變量,它們的優先級如下:

Compose file Shell environment variables Environment file Dockerfile Variable is not defined

注意:

  • 以上優先級順序都是指容器引用變量,不包括互相引用。
  • compose file中只能引用 Shell環境變量、.env 環境文件。引用不到Dockerfile中定義的變量,也引用不了env_file設置的文件中變量。
  • compose file中的變量是不能互相引用的。即設置一個變量時,引用內部的一個變量則結果是空值。
  • composefile中通過$ 符號引用環境變量,不支持 ${var:-value},${var:=value},${var:default}等語法。從version:'3' 開始支持 ${var:-value}
  • 很多默認值,則可以使用 .env 環境變量文件解決。
  • docker-compose.yml中引用的變量
  • /etc/profile等變量并不會對容器生效。參考:https://hhoeflin.github.io/2020/08/19/bash-in-docker/
  • 查看當前配置命令

    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-9

    shell環境變量

    export SV_NAME=data-standard-biz

    環境變量文件

    docker原生命令

    docker run --env-file=web-variables.env

    docker 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 KEY

    docker-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=xxxxxxxx

    docker-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环境变量的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。