如何使用 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?的主要内容,如果未能解决你的问题,请参考以下文章