【发布时间】:2021-02-02 23:41:13
【问题描述】:
我有一个 docker 容器,它暴露了 2 个端口,每个端口用于不同的 Web 服务。 一个是 API,另一个是带有文档的简单网页。
我试图理解 Traefik 的文档。看起来我需要使用细分,但我失败得很惨。
我想要
-
https://api.mydomain.net 路由到端口
my-container:4000 -
https://doc.mydomain.net 路由到端口
my-container:3000
这就是我现在所拥有的,它可以工作但只服务于端口 4000
my-service:
image: myregistry.com:5005/my-service:latest
container_name: my-service
labels:
- traefik.http.routers.my-service-router.tls=true
- traefik.http.routers.my-service-router.entrypoints=secure
- traefik.http.routers.my-services-router.rule=Host(`www.mydomain.net`)
networks:
- internal
我尝试了以下片段
my-service:
image: myregistry.com:5005/my-service:latest
container_name: my-service
expose:
- 4000 # my API
- 3000 # my doc
labels:
# segment myapi
- traefik.myapi.port=4000
- traefik.myapi.http.routers.my-service-router.tls=true
- traefik.myapi.http.routers.my-service-router.entrypoints=secure
- traefik.myapi.http.routers.my-services-router.rule=Host(`api.mydomain.net`)
# segment mydoc
- traefik.mydoc.port=3000
- traefik.mydoc.http.routers.my-service-router.tls=true
- traefik.mydoc.http.routers.my-service-router.entrypoints=secure
- traefik.mydoc.http.routers.my-services-router.rule=Host(`doc.mydomain.net`)
networks:
- internal
但这是错误的,不是吗? 所以我根据文档尝试了不同的...
my-service:
image: myregistry.com:5005/my-service:latest
container_name: my-service
expose:
- 4000 # my service
- 3000 # my other service
labels:
# segment myapi
- traefik.myapi.port=4000
- traefik.myapi.frontend.entrypoints=secure
- traefik.myapi.frontend.rule=Host(`api.mydomain.net`)
# segment mydoc
- traefik.mydoc.port=3000
- traefik.mydoc.frontend.entrypoints=secure
- traefik.mydoc.frontend.rule=Host(`doc.mydomain.net`)
networks:
- internal
我不理解文档,所以欢迎任何指针。
【问题讨论】:
-
你能发布你的整个 docker-compose 文件吗?
标签: docker docker-compose traefik