docker - Docker 容器的 Traefik 代理产生 404 未找到所有子域
问题描述
我正在尝试设置一组在单个 ubuntu 服务器上运行的容器化应用程序。我希望每个都在自己的子域上运行,并使用 Traefik 将请求代理到基于域的每个容器。我的 SSL 证书是涵盖域和所有子域的通配符证书。我的问题是,当我导航到我认为应该是正确的子域时,我无法看到这些应用程序。
这是主要 Traefik 容器的 toml 配置(从 docker hub 拉,顺便说一句):
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "myemail@gmail.com"
storage = "/acme.json"
entryPoint = "https"
OnHostRule = false
[[acme.domains]]
main = "*.mydomain.com"
sans = ["mydomain.com"]
[acme.dnsChallenge]
provider = "digitalocean"
delayBeforeCheck = 0
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "mydomain.com"
watch = true
exposedbydefault = false
Traefik 容器的 docker-compose.yml :
version: '3'
services:
traefik:
image: traefik:v1.7.9
#command: --docker
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik.toml:/traefik.toml"
- "./acme.json:/acme.json"
environment:
- DO_AUTH_TOKEN
networks:
- default
这是我试图从子域中运行的应用程序之一的 docker-compose.yml 和 Dockerfile 文件之一的示例:
码头工人-compose.yml
version: '3'
services:
servicename:
build: .
labels:
- "traefik.enabled=true"
- "traefik.backend=servicename"
- "traefik.frontend.rule=Host:servicename.domain.com"
- "traefik.docker.network=traefik_default"
- "traefik.port=8001"
restart: always
networks:
- traefik_default
networks:
traefik_default:
external:
name: traefik_default
Dockerfile
# pull official base image
FROM ruby:2.0.0
# Copy project
COPY . .
# install dependencies
RUN bundle install
EXPOSE 8001/tcp
CMD ["bundle", "exec", "rackup", "--host", "0.0.0.0", "-p", "8001"]
容器化的应用程序在 Traefik 上运行良好,但我还无法将其连接起来。有谁知道可能出了什么问题?
解决方案
推荐阅读
- android - 如何在Android中以编程方式在分屏模式下切换视图?
- python - 在 Python 中找不到路径
- python - 如何获取 Azure 表查询中返回的实体数?
- javascript - Typescript 可选链接结合三元运算符解析错误
- perl - 转换字符串中字符的位置以考虑“间隙”(即字符串中的非字母数字字符)
- file-upload - 通过 Microsoft Teams Graph Api 将文件上传到频道
- javascript - .play() 在 React 组件上无法按预期工作
- sql - 查找一年内销量最高的 10 种产品
- python - 将列添加到熊猫数据框中,列中的值除以基于另一列的组的列的最大值?
- swiftui - SwiftUI - ForEach 循环中的左挤压视图