You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下无法向外部站点发起URL请求问题求助

问题解决指南

一、内部URL请求失败的修复

如果是Django容器内发起requests.get(url)调用自身API或其他容器服务:

  • 不要使用localhost:8000:Docker容器内的localhost指向容器自身,而非宿主机。应该用服务名django或容器名prelim_local_django作为地址,例如:
    response = requests.get("http://django:8000/your-api-path")
    
  • 检查ALLOWED_HOSTS配置:确保Django的settings.py中ALLOWED_HOSTS包含django、prelim_local_django或*(仅本地开发环境可用),否则会返回400错误。

二、外部PDF服务DocRaptor无法访问的修复

这通常是容器对外网络访问问题,按以下步骤排查:

  1. 测试容器外网连通性:进入Django容器执行网络测试命令:
    docker exec -it prelim_local_django curl https://docraptor.com
    
    • 如果无法连通,检查宿主机网络是否正常,或给django服务添加DNS配置(在local.yml的django服务下新增DNS: 8.8.8.8指定公共DNS)。
  2. 确认DocRaptor API地址正确性:确保调用的是官方API地址,避免拼写错误。
  3. 检查容器网络模式:默认docker-compose使用bridge网络,支持外网访问;如果自定义了网络,需确认网络配置允许出站请求。

三、local.yml配置优化建议

针对你的配置,补充以下调整以避免潜在问题:

  • 给django服务添加VIRTUAL_HOST环境变量,让nginx-proxy能正确转发请求(如果需要通过宿主机80端口访问Django):
    django: &django
      # 现有配置不变
      environment:
        - VIRTUAL_HOST=prelim.local
    
  • 确保所有服务在同一网络:docker-compose默认会创建专属网络,无需额外配置,若手动指定网络需确保所有服务加入同一网络。

内容的提问来源于stack exchange,提问作者diogenes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:35:35