我已经能够在 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
虽然这是一个非常愚蠢的错误,但我不会删除这个问题,因为它可能会节省别人的时间。