I am trying do configure my docker compose to use traefik as reverse proxy to my nodejs app.
It is running locally at host nodejsdeploy.betorobson
which I have add a entry at hosts file to point out my local machine. So far my nodejs works by its own on port 3000.
So, it is working when I load on browser URL http://nodejsdeploy.betorobson:3000
My aim is to use traefik as reverse proxy on port 80.
Here is my docker compose which I am trying a few setups, you can see some comments lines which represent some of those frustrated setup that I have tried before.
Applying this compose setup, I can see the traefik dashboard running on port 8080, but when I try access the nodejs thought the port 80, it shows 404 page not found
version: "3"
services:
app:
labels:
# - "traefik.backend=app"
- "traefik.port=3000"
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.frontend.rule=Host:nodejsdeploy.betorobson"
# - "traefik.frontend.rule=Host:nodejsdeploy.betorobson"
# - "traefik.docker.network=web"
- "traefik.port=80"
build: .
ports:
- "3000:3000"
# networks:
# - internal
# - web
command: yarn start
reverse-proxy:
image: traefik:latest
# command: --api --docker.exposedbydefault=false
# command: --api --api.insecure=true --docker.exposedbydefault=false --providers.docker
# command: --api.insecure=true --providers.docker
command:
- --api.insecure=true
- --providers.docker
# command:
# - --api
# - --api.insecure=true
# - --docker
# # - --docker.swarmmode
# - --docker.watch
# # - --entrypoints=Name:http Address::80 Redirect.EntryPoint:https
# # - --entrypoints=Name:https Address::443 TLS
# # - --defaultentrypoints=http,https
# # - --acme
# # - --acme.email=jakub.hajek@cometari.com
# # - --acme.storage=/certificates/acme.json
# # - --acme.entryPoint=https
# # - --acme.httpChallenge.entryPoint=http
# # - --acme.onhostrule=true
# # - --acme.acmelogging=true
# # - --logLevel=INFO
# # - --accessLog
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# whoami:
# image: containous/whoami
# labels:
# - "traefik.http.routers.whoami.rule=Host(`nodejsdeploy.betorobson`)"
Docker file
FROM node:10-alpine
WORKDIR /usr/app
COPY package.json yarn.lock ./
RUN yarn
COPY . .
EXPOSE 3000
CMD ["yarn", "start"]