我的环境是 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
Run Code Online (Sandbox Code Playgroud)
echo -n secret > .secret_password_root
echo -n secret > .secret_password_user
chown root:root .secret_password*
chmod 400 .secret_password*
Run Code Online (Sandbox Code Playgroud)
(请注意,我可以设置 444,但这会暴露主机上的机密文件,这是一个非常糟糕的主意。)
docker-compose up
Run Code Online (Sandbox Code Playgroud)
错误:
db_1 | /usr/local/bin/docker-entrypoint.sh:第 37 行:/run/secrets/password_root:权限被拒绝
根据文档,机密文件应该挂载为0444,但这显然不会发生。