How do you expose port 3000 using an Azure Web App Container?

Dave Voyles picture Dave Voyles · Feb 8, 2018 · Viewed 17.2k times · Source

I'm running a react boilerplate app within a docker container, hosted Azure Web App Containers.

Locally, I spin the app up with:

docker run -p 3000:3000 431e522f8a87

My docker file looks like this:

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"]

APPLICATION SETTINGS

I've tried editing the Application Settings, to no avail, with the key/value pair: WEBSITES_PORT=3000

Apparently Azure only exposes ports 80 and 443 for inbound traffic:

80: Default port for inbound HTTP traffic to apps running in App Service Plans in an App Service Environment. On an ILB-enabled ASE, this port is bound to the ILB address of the ASE.

443: Default port for inbound SSL traffic to apps running in App Service Plans in an App Service Environment. On an ILB-enabled ASE, this port is bound to the ILB address of the ASE.

How do I expose port 3000 in an Azure App Service?

Answer

Dave Voyles picture Dave Voyles · Feb 8, 2018

User 4c74356b41 is correct.

In APPLICATION SETTINGS you need to set the key / value pair WEBSITES_PORT.

For some reason it's not working on this image, but I went through another example and did it all through the command line, and it worked fine.