【问题标题】:traefik, docker, and SSL: "Error reading configuration file: no such file or directory"traefik、docker 和 SSL:“读取配置文件时出错:没有这样的文件或目录”
【发布时间】:2021-06-09 06:27:42
【问题描述】:

我正在尝试设置一个非常基本的反向代理来开始一些实验,但令人尴尬的是,我什至无法让一个非常简单的配置工作。

在我(否则为空)的主目录中,我有 4 个文件:docker-compose.yml(定义反向代理)、certs.toml 和我的两个证书文件。如果我自己运行我的反向代理,它会生成自签名证书并且工作正常。但是,如果我尝试将我的实际证书提供给它,它会引发错误:

Cannot start the provider *file.Provider: error reading configuration file: certs.toml - open certs.toml: no such file or directory

docker-compose.yml:

version: '3'

services:
  reverse-proxy:
    image: traefik:latest
    container_name: "reverse-proxy"
    command:
      - --entrypoints.web.address=:80
      - --providers.docker
      - --entrypoints.web-secure.address=:443
      - --providers.file.filename=certs.toml
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      

certs.toml:

[tls.stores.default.defaultCertificate]
  certFile = "<domain>.crt"
  keyFile = "<domain>.key"

crt(或者我可以使用 pem?)和密钥文件与预期的一样。

那么,我在这里犯了什么真正的基本错误? :)

【问题讨论】:

    标签: docker ssl docker-compose traefik


    【解决方案1】:

    看起来certs.toml 仅在您的 Linux 主机上,而不是在您的容器中。

    您应该将它添加到您的容器中。您应该检查docker-compose.ymlvolumes 部分。

    还要注意 docker-compose.yml 中的相对路径和绝对路径(volumes--providers.file.filename)。

    【讨论】:

      【解决方案2】:

      在您可以包含的卷下

        `- "/var/run/docker.sock:/var/run/docker.sock"
        - "${PWD}/treafik.toml:/etc/traefik/traefik.toml "
        - "${PWD}/certs:/certs"`
      

      并将自签名证书包含在当前工作目录的 certs 文件夹中。

      【讨论】:

        猜你喜欢
        • 2019-01-22
        • 1970-01-01
        • 2021-09-10
        • 2018-12-31
        • 2016-01-03
        • 2021-08-11
        • 1970-01-01
        • 2013-01-14
        • 1970-01-01
        相关资源
        最近更新 更多