公司的所有專案都是採用Docker容器化部署,最近有一個專案需要使用定時任務呼叫第三方Api,正式web環境伺服器的網路與第三方網路是通暢的,但是當將程式碼釋出到正式環境,呼叫介面卻顯示
System.Net.Http.HttpRequestException: Resource temporarily unavailable
這一看就是實際網路還是不通,無法訪問
之後找到解決辦法,先在伺服器 /etc/hosts 目錄下配置IP與域名的對映
配置的方式與windows一致,前面是IP 域名;配置後在伺服器請求介面可以獲取資料。但是透過網頁使用手動方式呼叫介面
還是無法獲取資料,之後想到應用是容器化部署的。開啟docker-compose.yml檔案
使用 extra_hosts 對IP與域名進行對映,注意格式是相反的
extra_hosts:
- "googledns:8.8.8.8"
- "dockerhub:52.1.157.61"
配置後,需要重新部署
docker compose up -d --force-recreate web