日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

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: "a"a_port: 8080deploy:replicas: 1networks:- cdports:- "50370:50370"depends_on:- a

服務B的實現代碼中,請求服務A的接口地址寫為:

a_host:a_port

相當于curl a_host:a_port的效果,具體的調用詳情根據語言決定

解釋

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

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

轉載于:https://www.cnblogs.com/wswang/p/9360181.html

總結

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

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