如何阻止 docker 在丢失的机密文件上创建空文件夹

问题描述 投票:0回答:1

我在 Windows 10 上运行 docker compose 4.33.1,我注意到在 docker compose 中使用 Secret 时出现了奇怪的行为。如果定义了秘密但其文件丢失,docker 将简单地创建一个与丢失的秘密文件同名的空文件夹,然后继续假装一切正常。好吧,事实并非如此,我该如何阻止这种疯狂呢?

您可以轻松测试:

  1. 创建文件夹
  2. 有这个
    docker-compose.yml
version: "3.8"

services:
 testy:
   image: "node:18"
   entrypoint: cat /run/secrets/test_secret
   secrets:
     - test_secret

secrets:
 test_secret:
   file: ./secret.txt
  1. 奔跑
    docker compose up
  2. 观看创建的名为
    secret.txt
  3. 的新文件夹
  4. 日志中的通知:
    testy-1  | cat: /run/secrets/test_secret: Is a directory
docker docker-compose docker-secrets
1个回答
0
投票

只需将其添加到您的 docker-compose.yml

version: "3.8"

services:
  testy:
    image: "node:18"
    entrypoint: /bin/sh -c "if [ -f /run/secrets/test_secret ]; then cat /run/secrets/test_secret; else echo 'Secret file is missing'; exit 1; fi"
    secrets:
      - test_secret

secrets:
  test_secret:
file: ./secret.txt

如果缺少seret文件,这将退出

© www.soinside.com 2019 - 2024. All rights reserved.