1

好的,所以我有一个我想通过 traefik 访问的 node-js 应用程序。

node-js 应用程序在端口上运行3000

test-it在按照入门页面的说明进行操作后,我已经运行了 traefik 。

码头工人-compose.yml

version: '2'
services:

  app:
    build:
      context: .
      dockerfile: docker/app/Dockerfile
    environment:
      - NODE_ENV=development
      - NODE_PORT=3000
    volumes:
      - ./app:/app
    expose:
      - "3000"
    networks:
      - web
    labels:
      - "traefik.backend=microservice"
      - "traefik.backend.port=3000"
      - "traefik.port=3000"
      - "traefik.frontend.rule=Host:microservice.docker.localhost"
networks:
  web:
    external:
      name: traefik_webgateway

尝试连接:

curl -H Host:microservice.docker.localhost http://localhost/

错误的网关

curl -H Host:microservice.docker.localhost http://localhost:3000/

curl:(52)来自服务器的空回复

curl -H Host:whoami.docker.localhost http://localhost/按预期工作。

4

1 回答 1

1

问题是我的微服务必须听,localhost:3000而不是我把它改成它0.0.0.0:3000,它就像一个魅力。

- "traefik.backend.port=3000"_docker-compose.yml

添加127.0.0.1 microservice.docker.localhost/etc/hosts

这使我能够:

curl http://microservice.docker.localhost/并得到我期待的回应

我是微服务!

于 2017-08-29T09:34:16.390 回答