工作配置

工作配置

我已经能够在 Mariadb Docker 容器上访问 Mysql 控制台。

我可以从本地机器运行此命令来访问控制台(我已经在本地安装了 mariadb):

mysql -h localhost -P 3306 -u lc -p --protocol tcp

当我尝试使用 Docker secrets 而不是明确编写时,问题出现了密码docker-compose.yml文件上。

工作配置

因此,我可以访问 mysql 控制台:

services:
  mariadb:
    image: mariadb
    environment:
      MYSQL_DATABASE: my_db
      MYSQL_ROOT_PASSWORD: 'pw'
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - '3306:3306'

问题

一旦我将秘密移至文件,我就无法再访问了。

services:
  mariadb:
    image: mariadb
    environment:
      MYSQL_DATABASE: my_db
      MYSQL_ROOT_PASSWORD: ./env/mysql_root_password.tx
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - '3306:3306'

secrets:
  mysql_root_password:
    file: ./env/mysql_root_password.txt

这些秘密之所以有效,是因为 Wordpress 容器可以轻松访问它,因此pw当从秘密中检索到密码时,密码可能会变成其他东西。

任何想法?

答案1

这非常微妙……

如果您正在使用文件,则环境变量需要_FILE后缀!

MYSQL_ROOT_PASSWORD->MYSQL_ROOT_PASSWORD_FILE

虽然这是一个非常愚蠢的错误,但我不会删除这个问题,因为它可能会节省别人的时间。

相关内容