公司的所有项目都是采用Docker容器化部署,最近有一个项目需要使用定时任务调用第三方Api,正式web环境服务器的网络与第三方网络是通畅的,但是当将代码发布到正式环境,调用接口却显示

System.Net.Http.HttpRequestException: Resource temporarily unavailable

这一看就是实际网络还是不通,无法访问

之后找到解决办法,先在服务器 /etc/hosts 目录下配置IP与域名的映射

关于Docker compose值IP与域名的映射 之 extra_host

配置的方式与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

访问接口可以获取数据,大功告成!!!