My environment is an ubuntu 18.04 VPS.
I can't get file-based secrets to work with mariadb in a docker container.
- create
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
- create secrets:
echo -n secret > .secret_password_root
echo -n secret > .secret_password_user
chown root:root .secret_password*
chmod 400 .secret_password*
(Note that I can set 444, but that would expose the secrets file on the host which is a very bad idea.)
- run:
docker-compose up
Error:
db_1 | /usr/local/bin/docker-entrypoint.sh: line 37: /run/secrets/password_root: Permission denied
According to the docs, the secrets file should be mounted as 0444, but that's obviously not happening.