当前位置: 首页 > 知识库问答 >
问题:

如何使用Azure Web应用程序容器公开端口3000?

谭光辉
2023-03-14

我正在docker容器中运行react样板应用程序,托管Azure Web应用程序容器。

在本地,我通过以下方式启动应用程序:

docker run -p 3000:3000 431e522f8a87

我的docker文件如下所示:

FROM node:8.9.3
EXPOSE 3000
RUN mkdir -p src
WORKDIR /src
ADD . /src
RUN yarn install
RUN yarn build 
CMD ["yarn", "run", "start:prod"]

应用程序设置

我尝试过用键/值对编辑应用程序设置,但没有效果:WEBSITES\u PORT=3000

显然Azure只为入站流量公开端口80和443:

80:应用程序服务环境中应用程序服务计划中运行的应用程序的入站HTTP流量的默认端口。在启用ILB的ASE上,此端口绑定到ASE的ILB地址。

443:应用程序服务环境中应用程序服务计划中运行的应用程序的入站SSL通信的默认端口。在启用ILB的ASE上,此端口绑定到ASE的ILB地址。

如何在Azure应用程序服务中公开端口3000?

共有1个答案

尉迟默
2023-03-14

用户4c74356b41是正确的。

在应用程序设置中,您需要WEBSITES_PORT设置键/值对。

出于某种原因,它在这个图像上不起作用,但我通过另一个示例,并通过命令行完成了这一切,它工作得很好。

 类似资料:
  • 当我在本地运行django应用程序时,它工作正常,但当我在容器上运行它时,它不工作。这是港口问题吗?当我把它作为本地应用程序运行(没有docker)时,我把它指向localhost:8000/polls,它就像一个魅力。但是我发现,“localhost页面不工作。当我运行容器时,localhost没有发送任何数据。ERR_EMPTY_RESPONSE”。该应用程序基本上与Django教程一字不差h

  • 问题内容: 所以我有3个端口应该暴露在机器的接口中。使用Docker容器可以做到这一点吗? 问题答案: 要只暴露一个端口,这是您需要做的: 要公开多个端口,只需提供多个参数:

  • 问题内容: 我需要获取机器上所有打开的端口以及打开它们的应用程序的列表。我需要以编程方式获取此信息。 谢谢。 问题答案: 我希望能有一个更聪明的答案。我只是这样做(用Python编程),试图重写一个名为NetHogs的程序。我的版本在这里,特别是这里是Python中用于从中解析表的模块。如果您不是精通Python的人(请学习它),那么请看一下原始的NetHogs,它使用了C / C ++的混合(阅

  • 我有一个简单的rails应用程序,它有一个MongoDB后端。我使用Docker Compose在不同的容器中运行rails应用程序和MongoDB。当我使用默认的rails端口(3000)时,一切正常。 但是,如果我在端口8080上运行rails应用程序,而不是使用,并在我的中使用暴露端口8080,然后重建并推送图像,则只有MongoDB容器启动。我还更改了docker compose中的端口。

  • 我正在尝试创建一个Docker容器,它的作用就像一个完整的虚拟机。我知道我可以使用Dockerfile中的EXPOSE指令来公开端口,并且我可以使用标志和来分配端口,但是一旦容器实际运行,是否有命令来实时打开/映射其他端口? 例如,假设我有一个正在运行sshd的Docker容器。另一个使用容器SSH的人安装了httpd。有没有一种方法可以公开容器上的端口80,并将其映射到主机上的端口8080,这样

  • 我创建了一个docker镜像(java Web应用程序),创建了一个包含1个主节点和1个工作节点的kubernetes集群,创建了一个部署和一个服务。所有的资源似乎都运行良好,因为我已经通过“kubectl描述资源资源名”进行了检查。最后,我使用了入口来公开集群之外的服务。入口资源似乎工作正常,因为在描述入口对象时没有错误。但是,在从另一台机器访问浏览器上的主机时,我得到了“您的连接不是私有的”错