泊坞窗中的秘密撰写

时间:2019-10-06 12:40:33

标签: linux docker docker-compose

我的环境是Ubuntu 18.04 VPS。

我无法在Docker容器中使用基于文件的机密来与mariadb一起使用。

  1. 创建Locale variable 'a' value is not used
docker-compose.yml
  1. 创建秘密:
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

(请注意,我可以设置444,但这会在主机上公开密钥文件,这是一个非常糟糕的主意。)

  1. 运行:
echo -n secret > .secret_password_root
echo -n secret > .secret_password_user
chown root:root .secret_password*
chmod 400 .secret_password*

错误:

  

db_1 | /usr/local/bin/docker-entrypoint.sh:第37行:/ run / secrets / password_root:权限被拒绝

根据the docs,秘密文件应以docker-compose up 的形式挂载,但这显然没有发生。

2 个答案:

答案 0 :(得分:1)

显然,this is not supported表示“ docker compose”,仅表示“ docker swarm”。这些文档具有误导性。

答案 1 :(得分:0)

提示在这里:

chown root:root .secret_password* # set root as owner
chown 400 .secret_password*       # set `400` as owner

用`chmod替换chown

chown root:root .secret_password*
chmod 400 .secret_password*