Docker-Compose 上的 InfluxDB 无法读取 SSL 证书文件

2023-12-21

我在尝试使用在 Docker Compose 上运行的 InfluxDB v1.8 配置 SSL 时遇到一些问题。

我跟着官方文档 https://docs.influxdata.com/influxdb/v1.8/administration/https_setup/#set-up-https-with-a-self-signed-certificate使用自签名证书启用 HTTPS,但容器崩溃并出现以下错误:

run: open server: open service: open "/etc/ssl/influxdb-selfsigned.crt": no such file or directory

如果我使用运行此配置,它会起作用docker run命令:

docker run -p 8086:8086 -v $PWD/ssl:/etc/ssl \
  -e INFLUXDB_DB=db0 \
  -e INFLUXDB_ADMIN_USER=admin \
  -e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \
  -e INFLUXDB_HTTP_HTTPS_ENABLED=true \
  -e INFLUXDB_HTTP_HTTPS_CERTIFICATE="/etc/ssl/influxdb-selfsigned.crt" \
  -e INFLUXDB_HTTP_HTTPS_PRIVATE_KEY="/etc/ssl/influxdb-selfsigned.key" \
  -d influxdb

我的 docker-compose.yml 如下:

version: "3"
services:
  influxdb:
    image: influxdb
    ports:
      - "8086:8086"
    volumes:
      - influxdb:/var/lib/influxdb
      - ./ssl:/etc/ssl/
    environment:
      - INFLUXDB_DB=db0
      - INFLUXDB_ADMIN_USER=admin
      - INFLUXDB_ADMIN_PASSWORD=supersecretpassword
      - INFLUXDB_HTTP_HTTPS_ENABLED=true
      - INFLUXDB_HTTP_HTTPS_CERTIFICATE="/etc/ssl/influxdb-selfsigned.crt"
      - INFLUXDB_HTTP_HTTPS_PRIVATE_KEY="/etc/ssl/influxdb-selfsigned.key"
      - INFLUXDB_HTTP_AUTH_ENABLED=true

volumes:
  influxdb:

如果我设置INFLUXDB_HTTP_HTTPS_ENABLED设置为 false,我可以看到证书和密钥文件已按应有的方式安装/etc/ssl在容器中(docker exec -it airq_influxdb_1 ls -la /etc/ssl )

您知道为什么会发生这种情况以及如何解决吗?


传入的环境变量docker-compose.yml是字符串。您不需要传递引号。
流入数据库正在寻找以下证书"/etc/ssl/influxdb-selfsigned.crt"...字面上地

只需删除引号,数据库就会启动:

...
      - INFLUXDB_HTTP_HTTPS_ENABLED=true
      - INFLUXDB_HTTP_HTTPS_CERTIFICATE=/etc/ssl/influxdb-selfsigned.crt
      - INFLUXDB_HTTP_HTTPS_PRIVATE_KEY=/etc/ssl/influxdb-selfsigned.key
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker-Compose 上的 InfluxDB 无法读取 SSL 证书文件 的相关文章

随机推荐