【问题标题】:Can't access Api from angular container无法从角度容器访问 Api
【发布时间】:2020-08-15 20:27:18
【问题描述】:

我有一个 docker-compose 文件,其中包含多个容器,它们之间的两个是 Angular 前端应用程序和一个 Spring Boot API。 在运行 docker-compose 文件时,我成功地从浏览器访问了 Angular 应用程序,但是当我尝试从 Angular 应用程序访问 API(发送发布请求)时,我得到了

net::ERR_NAME_NOT_RESOLVED.

在我的 Angular 应用程序中,我使用 docker-compose 中定义的别名调用 api。

http://search-service:8080/

有解决此错误的建议吗?

【问题讨论】:

  • 快速猜测:由于您在主机上打开了 Angular 应用程序,因此您的服务的别名未知且无法解析。您需要使用它的 IP。
  • @pzaenger 或 localhost:8080 如果端口暴露给主机
  • @PiotrKorlaga 确实,好点。
  • 我没有使用主机网络,所以即使 localhost:8080 也无法正常工作。在 Angular 源代码中使用 IP 地址连接到 API 是否是一种好习惯,尤其是当后端容器 IP 地址可以更改时?是否有任何其他解决方案可以自动解决此“别名-IP 地址”转换问题。
  • @daliDV 通常您使用 environment.ts 进行开发设置,例如 localhost 和 environment.prod.ts 用于具有真实主机名的产品设置

标签: angular spring-boot docker docker-compose


【解决方案1】:

当我将 --prod 选项添加到 Angular Dockerfile 中的 npm run build 命令时,我解决了这个问题。但有人知道原因吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 2020-06-05
    • 2020-04-12
    • 1970-01-01
    • 2020-07-20
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多