通过traefik访问3000端口的容器
Accessing container on port 3000 thru traefik
好的,我有一个 node-js 应用程序,我想通过 traefik 访问它。
node-js 应用程序在端口 3000
上运行
按照入门页面的 test-it
说明,我得到了 traefik 运行。
docker-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) Empty reply from server
但是 curl -H Host:whoami.docker.localhost http://localhost/
工作正常。
问题是我的微服务必须监听 localhost:3000
而不是我将其更改为 0.0.0.0:3000
并且它工作得很好。
从 docker-compose.yml
中删除了 - "traefik.backend.port=3000"
将 127.0.0.1 microservice.docker.localhost
添加到 /etc/hosts
这让我能够:
curl http://microservice.docker.localhost/
并得到我期待的响应
I'm a microservice!
好的,我有一个 node-js 应用程序,我想通过 traefik 访问它。
node-js 应用程序在端口 3000
按照入门页面的 test-it
说明,我得到了 traefik 运行。
docker-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) Empty reply from server
但是 curl -H Host:whoami.docker.localhost http://localhost/
工作正常。
问题是我的微服务必须监听 localhost:3000
而不是我将其更改为 0.0.0.0:3000
并且它工作得很好。
从 docker-compose.yml
- "traefik.backend.port=3000"
将 127.0.0.1 microservice.docker.localhost
添加到 /etc/hosts
这让我能够:
curl http://microservice.docker.localhost/
并得到我期待的响应
I'm a microservice!