这篇文章给大家介绍怎么在码头工人中利用组合引用环境变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>组成CLI与环境变量强>
组成CLI(组合命令行即docker-compose程序)能够识别名称为COMPOSE_PROJECT_NAME和COMPOSE_FILE等环境变量(具体支持的环境变量请参考这里)。比如我们可以通过这两个环境变量为docker-compose指定项目的名称和配置文件:
,美元export COMPOSE_PROJECT_NAME=TestVar 美元,export COMPOSE_FILE=~//composecounter/docker-compose项目。yml
然后启动应用,显示的项目名称都是我们在环境变量中指定的:
如果设置了环境变量的同时又指定了命令行选项,那么会应用命令行选项的设置:
,美元docker-compose -p nickproject up - d
<强>在撰写文件中引用环境变量强>
我们还可以在构建文件中直接引用环境变量,比如下面的演示:
版本:,& # 39;3 & # 39; ,服务: ,网络: ,,图片:$ {IMAGETAG} 港口:才能 之处,才能“5000:5000" ,复述,: ,,形象:“复述:alpine"
我们通过环境变量$ {IMAGETAG}指定了web的镜像、下面通过出口的方式来为组合配置文件中的环境变量传值:
注意,如果对应的环境变量没有被设置,那么组成就会把它替换为一个空字符串:
碰到这种情况,我们可以在组成的配置文件中为该变量设置一个默认值:
版本:,& # 39;3 & # 39; 服务: ,网络: ,图片:$ {IMAGETAG: -defaultwebimage} ,港口: 之处,才能“5000:5000" ,复述,: ,形象:“复述:alpine"
这样,如果没有设置IMAGETAG变量,就会应用defaultwebimage:
除了这种方式,我们还可以通过后面将介绍的.env文件来为环境变量设置默认值。
<强>把环境变量传递给容器强>
先来看一下在写文件中如何为容器设置环境变量:
网络: ,环境: 之前,调试:1 >组成文件中环境的节点用来为容器设置环境变量,上面的写法等同于:
,美元docker run -e 调试=1要把当前壳环境变量的值传递给容器的环境变量也很简单,去掉上面代码中的赋值部分就可以了:
网络: ,环境: 之前,调试:>这种情况下,如果没有在当前的shell中导出环境变量调试、编写文件中会把它解释为零:
在试试导出环境变量调试的情况:
,美元export 调试=1
这才是我们设计的正确的使用场景!
<强>使用文件为容器设置多个环境变量强>
如果觉得通过环境为容器设置环境变量不够过瘾,我们还可以像码头工人国营的——env-file参数一样通过文件为容器设置环境变量:
网络: ,env_file: ,安康;web-variables.env注意,web-variables。env文件的路径是相对于docker-compose。yml文件的相对路径。上面的代码效果与下面的代码相同:
,美元docker run ——env-file=web-variables.envweb-variables。env文件中可以定义一个或多个环境变量:
#, define web container env 浏览器名称=helloworld 作者=Nick 李 以前版本=1.0怎么在码头工人中利用组合引用环境变量