Секретная ссылка Cloud Run монтируется как каталог, а не как файл
Нужна помощь с Cloud Run с Secret Manager, нам нужно смонтировать 2 секрета как том (только файл), ниже приведен yaml из Cloud Run.
volumeMounts:
- name: secret-2f1d5ec9-d681-4b0f-8a77-204c5f853330
readOnly: true
mountPath: /root/key/mtls/client_auth.p12
- name: secret-29c1417a-d9fe-4c37-8cb0-562c97f3c827
readOnly: true
mountPath: /root/key/firebase/myapp-d2a0f-firebase-adminsdk-irfes-a699971a4d.json
volumes:
- name: secret-2f1d5ec9-d681-4b0f-8a77-204c5f853330
secret:
secretName: myapp_mtls_key
items:
- key: latest
path: myapp_mtls_key
- name: secret-29c1417a-d9fe-4c37-8cb0-562c97f3c827
secret:
secretName: myapp_firebase_token
items:
- key: latest
path: myapp_firebase_token
Секрет mtls (файл p12) правильно монтируется как файл, но вместо этого секрет Firebase (файл JSON) монтируется как каталог.
java.io.FileNotFoundException: /root/key/firebase/myapp-d2a0f-firebase-adminsdk-irfes-a699971a4d.json (Is a directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
at com.myapp.gcp.GCPInit.init(GCPInit.java:39)
Согласно соглашению докера, если файл не найден на хосте, он монтируется как каталог, но в этом случае мы не можем контролировать путь к хосту или доступность файла, так может ли это быть ошибка?
При тестировании нашего развертывания в Docker-контейнере с монтированием томов все работает нормально, поэтому мы уверены, что наше приложение не виновато.
Ценим любые рекомендации по этому вопросу.
Спасибо