【问题标题】:How to access host nodejs app from docker nuxt app?如何从 docker nuxt 应用程序访问主机 nodejs 应用程序?
【发布时间】:2022-11-29 14:12:12
【问题描述】:

我正在尝试让我的 nuxt 应用程序在生产服务器上运行。对于本地机器,生成的 docker 镜像运行良好,它可以访问在本地主机上运行的 nodejs 应用程序。 axios 'baseurl: http://127.0.0.1:6008/' 似乎工作正常,docker 镜像可以访问它。在生产服务器上,我使用 docker 来设置 nuxt 应用程序,就像我在本地机器上测试的一样。然而 docker nuxt 应用程序无法访问主机服务器上的 nodejs 应用程序。我可以看出这一定是某种网络设置问题。

在 vuejs 应用程序中,我通常在 apache web conf 中设置一个 proxypass,以转换输入后端查询以匹配并用本地主机地址替换它们。

ProxyPass /app/query http://localhost:6008/query

nuxt.config 文件中的 axios 设置如下所示:

axios: {
baseURL:'http://127.0.0.1:6008/',
browserBaseURL: ''
},

docker 是否需要额外的设置,或者我应该为我的 docker 容器和在主机 apache pm2 上运行的节点应用程序之间的这种通信配置我的 apache?

【问题讨论】:

  • 在本地主机中使用桥接网络,因此默认情况下所有容器都在本地主机可以访问的同一网络上,您是否也在生产中使用相同的网络配置(默认),或者为它们创建不同的虚拟网络? (如果您使用 docker compose 并将它们添加为不同的服务,它们将位于不同的虚拟网络上)

标签: node.js docker ubuntu nuxt.js web-deployment


【解决方案1】:

docker 中的 localhost127.0.0.1 不会解析为服务器的本地主机。相反,您需要指定 nodejs 服务的名称(如果您使用的是 docker-compose)或 nodejs docker 容器名称(如果您只是使用 docker run)。

您也可以尝试提供运行 docker 的服务器的 IP,而不是 127.0.0.1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 2021-11-06
    • 2019-09-16
    • 2022-07-25
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多