2

我正在尝试调整 Docker 的 Wordpress 秘密示例(下面的链接)以在我的 Docker Compose 设置(用于 Drupal)中工作。

https://docs.docker.com/engine/swarm/secrets/#/advanced-example-use-secrets-with-a-wordpress-service

但是,当启动 'mysql' 容器时,会输出以下错误:

“错误:数据库未初始化且未指定密码选项您需要指定 MYSQL_ROOT_PASSWORD、MYSQL_ALLOW_EMPTY_PASSWORD 和 MYSQL_RANDOM_ROOT_PASSWORD 之一”

我使用“docker secret create”命令创建了这些秘密:

docker secret create mysql_root_pw tmp-file-holding-root-pw.txt
docker secret create mysql_pw tmp-file-holding-pw.txt

运行上述后,秘密 ' mysql_root_pw ' 和 ' mysql_pw ' 现在存在于 swarm 环境中。通过执行验证:

docker secret ls

以下是我的 docker-compose.yml文件中的相关部分:

version: '3.1'
services:
  mysql:
    image: mysql/mysql-server:5.7.17 
   environment:
      - MYSQL_ROOT_PASSWORD_FILE="/run/secrets/mysql_root_pw"
      - MYSQL_PASSWORD_FILE="/run/secrets/mysql_pw"
    secrets:
      - mysql_pw
      - mysql_root_pw

secrets:
  mysql_pw:
    external: true
  mysql_root_pw:
    external: true

当我执行“ docker stack deploy MYSTACK ”时,当“mysql”容器尝试启动时出现上述错误。

似乎“ MYSQL_PASSWORD_FILE ”和“ MYSQL_ROOT_PASSWORD_FILE ”不是MySQL识别的标准环境变量,它仍然期待“ MYSQL_ROOT_PASSWORD ”环境变量。

我正在使用 Docker 17.03。

有什么建议么?

谢谢。

4

1 回答 1

0

如果您的密钥也是空字符串,则会出现此错误。这就是发生在我身上的事情,已安装秘密并正确配置了服务,但由于没有密码而仍然失败。

于 2017-10-01T20:34:38.347 回答