Docker reason: connect ECONNREFUSED 0.0.0.0:80

Viewed 1671

I've got a nuxtjs app runnning in a docker container, i'm trying to use the localhost on the nuxt application to connect to an endpoint but unfortunately i get the following error RROR request to http://0.0.0.0/api/articles failed, reason: connect ECONNREFUSED 0.0.0.0:80

I'm trying to do a fetch in the nuxt config to generate a sitemap from a getcockpit cms.

Here is a snippets of the fetch.

sitemap: {
    hostname: `${process.env.BASE_URL}`,
    gzip: true,
    routes: async () => {
      const articles = await fetch(`http://0.0.0.0/api/articles`, {
        method: 'post',
        body: JSON.stringify({
          filter: {
            Published: true
          }
        })
      })
        .then((res) => res.json())
        .then((values) => {
          const results = values.entries
          return results
            .filter((result) => result.url.length > 0)
            .map((result) => result.url)
        })
        .catch((err) => console.error(err))
      return articles
    }
  },

And a copy of Docker File

FROM node:12.16.1-alpine

# create destination directory
RUN mkdir -p /usr/src/nuxt-app
WORKDIR /usr/src/nuxt-app

# update and install dependency
RUN apk update && apk upgrade
RUN apk add git

# copy the app, note .dockerignore
COPY . /usr/src/nuxt-app/
RUN npm ci

# build necessary, even if no static files are needed,
# since it builds the server as well
RUN npm run build

# expose 5000 on container
EXPOSE 5000    
RUN npm config set https-proxy 127.0.0.1:9000 

# set app serving to permissive / assigned
ENV NUXT_HOST=0.0.0.0
# set app port
ENV NUXT_PORT=5000
ENV HOST 0.0.0.0
ENV PORT 5000
ENV HTTP_PROXY http://docker.for.mac.localhost.internal:3128
ENV HTTPS_PROXY  https://docker.for.mac.localhost.internal:3128
ENV FTP_PROXY ftp://docker.for.mac.localhost.internal:3128
ENV NO_PROXY  http://docker.for.mac.localhost.internal:3128


ENV BASE_URL=http://nuxt
ENV GET_ARTICLES_API_TOKEN=token
ENV GET_ARTICLES_URL=example.com
# start the app
CMD [ "npm", "start"]

Current Docker Compose

version: "2"
services:
  nuxt:
    build: .
    ports:
      - 5000:5000
    environment:
      ENV NUXT_HOST: 0.0.0.0
      ENV NUXT_PORT: 5000

2 Answers

Have you tried visiting localhost:5000 on your browser?

The default port for http connections is 80 and your application listens on 5000. So when you trying to connect to 0.0.0.0:80, where nothing is listening, the connection is refused.

Related