簡體   English   中英

docker-compose在url中解析主機名

[英]docker-compose resolve hostname in url

試圖環顧四周,但找不到任何我需要的東西。

我有一個包含docker容器( web )的docker-compose文件,該容器通過解析主機名在其環境變量中使用另一個容器的IP( api ):

version: '3'
services:
  web:
    build: ../client/
    ports:
      - "5000:5000"
      - "3000:3000"
    environment:
      REACT_APP_API_DEV: http://api:8000/server/graphql
  api:
    build: ../server/
    env_file:
      - server_variables.env
    ports:
      - "8000:8000"
  redis:
    image: "redis:alpine"

我的問題是, web無法在運行時解析此變量。 我可以在web容器內ping api正常,但是http://api:8000無法正確解析。 我還嘗試將HOST = api設置為變量並手動構建URI,但這也不起作用。

編輯:我添加了完整的docker-compose.yml文件以供參考。 我可以從web容器中很好地curl api ,但是我的應用似乎無法正確解決它。 我正在使用NodeJS和React

您必須使用network鏈接它們

version: '3'
services:
  web:
    ...
    environment:
      - HOST: http://api:8000
    networks:
      - my-network
    ...
  api:
    networks:
      - my-network
    ...

networks:
  my-network:

好吧,我發現了問題。 顯然,我的web容器是使用http://api:8000 URI從api獲取的,但我的瀏覽器不知道api是什么(只有容器知道)。

我按照此處建議的方法來解析我的計算機上的主機名,然后它就解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM