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

Posted

技术标签:

【中文标题】如何使用 Azure Web 应用容器公开端口 3000?【英文标题】:How do you expose port 3000 using an Azure Web App Container? 【发布时间】:2018-07-19 12:26:26 【问题描述】:

我在 docker 容器中运行 react boilerplate 应用程序,托管在 Azure Web App Containers。

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

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_PORT=3000

显然Azure only exposes ports 80 and 443 用于入站流量:

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

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

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

【问题讨论】:

website_port 确实是正确的设置。 docs.microsoft.com/en-us/azure/app-service/containers/… 你可能是对的。文档说你可以,但出于某种原因我不能。嗯...“我的自定义容器侦听端口 80 以外的端口。如何配置我的应用程序以将请求路由到该端口?我们有自动端口检测功能。您还可以指定一个名为 WEBSITES_PORT 的应用程序设置并为其赋值的预期端口号。以前,平台使用 PORT 应用设置。我们计划弃用此应用设置并独占使用 WEBSITES_PORT。" 【参考方案1】:

用户4c74356b41 是正确的。

APPLICATION SETTINGS中您需要设置键/值对WEBSITES_PORT

由于某种原因,它不适用于此图像,但我通过另一个示例并通过命令行完成了所有操作,并且效果很好。

【讨论】:

@RıfatErdemSahin 我不确定。不幸的是,我一直不明白为什么它在这种情况下不起作用。 还创建了另一个与此相关的线程。我无法在 Azure 中运行容器。 devops.stackexchange.com/questions/4543/… WEBSITES_PORT 在我的情况下有效。外部端口还是80。 我在哪里可以找到这些应用程序设置? @TorstenS 在 Azure 门户中,你可以在这里找到它:docs.microsoft.com/en-us/azure/app-service/web-sites-configure

以上是关于如何使用 Azure Web 应用容器公开端口 3000?的主要内容,如果未能解决你的问题,请参考以下文章

如何在azure VM上公开HTTP端口[关闭]

Rancher - 如何公开我的服务?

为 django 应用程序公开容器端口

如何使用 Docker 公开 1 个以上的端口?

如何仅将 Docker 容器端口公开给 localhost,以便也可以通过 ssh 隧道访问它?

在Azure Compute Emulator中外部公开端口