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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker内程序如何读取dockerfile和compose.yml中设置的环境变量

發(fā)布時間:2023/11/29 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker内程序如何读取dockerfile和compose.yml中设置的环境变量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

docker內(nèi)程序如何讀取dockerfile和compose.yml中設(shè)置的環(huán)境變量

背景

compose文件中配置了服務(wù)A和服務(wù)B,其中B服務(wù)調(diào)用了A服務(wù)的接口,那么B的實現(xiàn)代碼中該如何調(diào)用A的服務(wù)呢?

解決

compose文件中,服務(wù)B的配置加入A的接口,B的實現(xiàn)代碼中調(diào)用此接口即可;yml文件如下:

a:image: nlp:1.1environment:PROCESS_NUM: 1deploy:replicas: 1networks:- cdb:image: debug:1.1environment:PROCESS_NUM: 1a_host: "a"a_port: 8080deploy:replicas: 1networks:- cdports:- "50370:50370"depends_on:- a

服務(wù)B的實現(xiàn)代碼中,請求服務(wù)A的接口地址寫為:

a_host:a_port

相當(dāng)于curl a_host:a_port的效果,具體的調(diào)用詳情根據(jù)語言決定

解釋

實際上dockerfile和yml文件的配置方式是一樣的;起初不理解,隨后考慮了一下,大概理解如下:

  • yml和dockerfile中的environment/ENV就相當(dāng)于一個環(huán)境變量,再底層一些來講,相當(dāng)于系統(tǒng)的一個環(huán)境變量,服務(wù)啟動的時候變量就存在了;若想用這個變量,去系統(tǒng)中讀取就可以了,比如Python:
import os os.environ.get('a_host', 'a_host')
  • yml中的定義方式如上,他的實現(xiàn)方式實際上就和DNS一樣;當(dāng)你定義的這些服務(wù)在同一個子網(wǎng)的時候,服務(wù)的名稱就相當(dāng)于其域名,直接調(diào)用服務(wù)名就可以調(diào)用這個服務(wù)的接口;也就是說:知道了服務(wù)名,就知道了服務(wù)的地址;期間不用你做額外的操作

轉(zhuǎn)載于:https://www.cnblogs.com/wswang/p/9360181.html

總結(jié)

以上是生活随笔為你收集整理的docker内程序如何读取dockerfile和compose.yml中设置的环境变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。