【发布时间】:2020-02-04 00:38:55
【问题描述】:
我的环境是 ubuntu 18.04 VPS。
我无法在 docker 容器中使用 mariadb 获取基于文件的机密。
- 创建
docker-compose.yml:
version: '3.7'
services:
db:
image: mariadb:10.4.8-bionic
environment:
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/password_root
- MYSQL_PASSWORD_FILE=/run/secrets/password_user
- MYSQL_DATABASE=database
- MYSQL_USER=admin
secrets:
- password_root
- password_user
secrets:
password_root:
file: .secret_password_root
password_user:
file: .secret_password_user
- 创建秘密:
echo -n secret > .secret_password_root
echo -n secret > .secret_password_user
chown root:root .secret_password*
chmod 400 .secret_password*
(请注意,我可以设置 444,但这会暴露主机上的机密文件,这是一个非常糟糕的主意。)
- 运行:
docker-compose up
错误:
db_1 | /usr/local/bin/docker-entrypoint.sh:第 37 行:/run/secrets/password_root:权限被拒绝
根据the docs,秘密文件应该挂载为0444,但这显然不会发生。
【问题讨论】:
-
它在错误消息中显示
/run/secrets/db_password_root,但您的 compose 中没有此文件。
标签: linux docker docker-compose