通过traefik访问端口3000上的容器

时间:2017-08-28 13:56:30

标签: traefik

好的,所以我有一个node-js app我想通过traefik访问。

node-js app在端口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/

  

Bad Gateway

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

  

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

curl -H Host:whoami.docker.localhost http://localhost/的工作方式与预期一致。

1 个答案:

答案 0 :(得分:0)

问题在于,我的微服务必然会听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/并获得我期待的回复

  

我是微服务器!