怎么做网站讯息,产品彩页模板,阿里巴巴国际站官网网页版,深圳企业网站建设费用docker内程序如何读取dockerfile和compose.yml中设置的环境变量 背景 compose文件中配置了服务A和服务B#xff0c;其中B服务调用了A服务的接口#xff0c;那么B的实现代码中该如何调用A的服务呢#xff1f; 解决 compose文件中#xff0c;服务B的配置加入A的接口#xff… docker内程序如何读取dockerfile和compose.yml中设置的环境变量 背景 compose文件中配置了服务A和服务B其中B服务调用了A服务的接口那么B的实现代码中该如何调用A的服务呢 解决 compose文件中服务B的配置加入A的接口B的实现代码中调用此接口即可yml文件如下 a:image: nlp:1.1environment:PROCESS_NUM: 1deploy:replicas: 1networks:- cdb:image: debug:1.1environment:PROCESS_NUM: 1a_host: aa_port: 8080deploy:replicas: 1networks:- cdports:- 50370:50370depends_on:- a 服务B的实现代码中请求服务A的接口地址写为 a_host:a_port 相当于curl a_host:a_port的效果具体的调用详情根据语言决定 解释 实际上dockerfile和yml文件的配置方式是一样的起初不理解随后考虑了一下大概理解如下 yml和dockerfile中的environment/ENV就相当于一个环境变量再底层一些来讲相当于系统的一个环境变量服务启动的时候变量就存在了若想用这个变量去系统中读取就可以了比如Pythonimport os
os.environ.get(a_host, a_host) yml中的定义方式如上他的实现方式实际上就和DNS一样当你定义的这些服务在同一个子网的时候服务的名称就相当于其域名直接调用服务名就可以调用这个服务的接口也就是说知道了服务名就知道了服务的地址期间不用你做额外的操作转载于:https://www.cnblogs.com/wswang/p/9360181.html