Running nuxt js application in Docker

docker, javascript, nuxt.js, vue.js

Solution

The application inside Docker container by default is accepting network traffic on`http://127.0.0.1:3000`. This interface does not accept external traffic so no wonder that it does not work. In order to make it work we need to set HOST environmental variable for nuxt app to `0.0.0.0` (all ip addresses). We can do this either in Dockerfile, like this:

FROM node:6.10.2

ENV HOST 0.0.0.0

# rest of the file

or in package.json in the script's "start" command:

`"scripts": { "start": "HOST=0.0.0.0 nuxt start" ...}`

Or any other way that will make the nuxt application to listen elsewhere than on localhost inside container only.

Problem

I'm trying to run nuxt application in docker container. In order to do so, I created the following Dockerfile: ``` FROM node:6.10.2 RUN mkdir -p /app EXPOSE 3000 COPY . /app WORKDIR /app RUN npm install RUN npm run build CMD [ "npm", "start" ] ``` However, when I build the image and run the container (`docker run -p 3000:3000 <image-id>`) I get nothing while hitting `localhost:3000` in my browser. What could be the cause?

Original source