Я использую gcsfuse в контейнере докеров (базовый образ centos7) и не могу читать или записывать в смонтированный каталог.
Я монтирую каталог с помощью gcsfuse следующим образом:
[root@6c24c3a6cc28 /]# gcsfuse --foreground --key-file=/src/gcloud_service_account.json my-bucket /gcloud/
Using mount point: /gcloud
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.
Когда я пытаюсь прочитать или записать в смонтированный каталог, я получаю следующую ошибку:
[root @ 6c24c3a6cc28 /] # ls -la / gcloud / ls: чтение каталога / gcloud /: Всего ошибок ввода / вывода 0
gcsfuse выводит отладочную информацию, говоря:
fuse: 2016/01/14 01: 33: 41.110260 * fuseops.ReadDirOp error: readAllEntries: ReadEntries: ListObjects: Get https://www.googleapis.com/storage/v1/b/my-bucket/o? delimiter =% 2F & projection = full: закрытый ключ должен быть PEM или обычным PKSC1 или PKCS8; ошибка синтаксического анализа: asn1: ошибка структуры: теги не совпадают (16 vs {class: 1 tag: 27 length: 123 isCompound: true}) {optional: false explicit: false application: false defaultValue: tag: stringType: 0 timeType: 0 set: false omitEmpty: false} pkcs1PrivateKey @ 2
Я запускаю докер так: docker run -p 3000: 3000 \
--privileged \ --cap-add SYS_ADMIN \ --device / dev / fuse \ --name gcsfuseTest \ gcsfuseImage
Я не уверен на 100%, что мне дают --cap-add SYS_ADMIN и --device / dev / fuse. Я вставил их на основе других пользователей, которые монтируют с помощью предохранителя на докере.