似乎每当我使用密钥/配置时,它们始终是组和用户可写的,即使我将模式显式设置为非组可写的。撰写文件示例:
version: "3.4"
services:
alpine:
image: alpine
entrypoint: ["stat", "/foo"]
secrets:
- source: foo
target: /foo
mode: 400
secrets:
foo:
file: foo
状态权限:
Access: (0620/-rw--w----) Uid: ( 0/ root) Gid: ( 0/ root)
我在撰写文件中将其设置为400,但在容器中为620!
这似乎有点奇怪,并且对我来说是个问题,因为我想将此用于ssh,如果用户/主机密钥之类的文件可组写入,则会出错。我唯一的其他选择是将配置烘焙到映像中,如果可能的话,我想避免。
这是我最初在论坛上提出的问题,但我想也可以在这里发布:https://forums.docker.com/t/secrets-configs-always-group-writable/65458
答案 0 :(得分:2)
您需要以0开头,否则yaml表示法会将数字解析为十进制而不是八进制:
mode: 0400
八进制620是十进制400。
请参阅Yaml规范:https://yaml.org/type/int.html
还有撰写文档中的示例:https://docs.docker.com/compose/compose-file/#long-syntax-2