Docker Compose部署Traefik报错:读取traefik.yaml提示为目录
解决Traefik容器启动失败:read /etc/traefik/traefik.yaml: is a directory
错误原因
容器内的/etc/traefik/traefik.yaml被识别为目录而非配置文件,导致Traefik无法读取配置正常启动。
解决步骤
检查本地config目录结构
执行命令确认docker-compose.yaml所在目录下的config文件夹中,traefik.yaml是文件而非目录:ls -l ./config输出中
traefik.yaml的类型应为-(文件),若为d(目录)则需删除该目录并重新创建文件。修复错误的目录/文件
若存在同名目录,删除并重新创建配置文件:rm -rf ./config/traefik.yaml touch ./config/traefik.yaml写入基础Traefik配置(可根据实际需求调整):
api: dashboard: true entryPoints: web: address: ":80" websecure: address: ":443" providers: docker: endpoint: "unix:///var/run/docker.sock" exposedByDefault: false # 可选:Cloudflare证书解析器配置 certificatesResolvers: cloudflare: acme: email: your-email@example.com storage: /etc/traefik/acme.json dnsChallenge: provider: cloudflare resolvers: - "1.1.1.1:53" - "8.8.8.8:53"配置证书存储文件权限(若使用Cloudflare)
创建并设置acme.json权限,避免Traefik写入证书失败:touch ./config/acme.json chmod 600 ./config/acme.json重新启动容器
docker-compose down docker-compose up -d查看启动日志确认状态:
docker-compose logs traefik
内容的提问来源于stack exchange,提问作者Krystian Ignaczak
相关产品推荐
相关产品推荐

