Назад | Перейти на главную страницу

gcsfuse в Google App Engine гибкая настраиваемая среда выполнения

Я пытаюсь использовать gcsfuse для монтирования корзин GCS в контейнере докеров, развернутом в гибком настраиваемом экземпляре среды выполнения GAE. Это часть Dockerfile:

FROM gcr.io/google-appengine/python

RUN apt-get -y update
RUN apt-get -y install lsb-release
RUN echo "deb http://packages.cloud.google.com/apt gcsfuse-$(lsb_release -cs) main" | tee /etc/apt/sources.list.d/gcsfuse.list
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN apt-get -y update
RUN apt-get -y install fuse gcsfuse

Затем из контейнера докеров я получаю сообщение об ошибке при запуске:

# gcsfuse --key-file=gcs_credentials.json bucket_name /tmp/mount_path
Using mount point: /tmp/mount_path
Opening GCS connection...
Opening bucket...
Mounting file system...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: running fusermount: exit status 1
stderr:
fusermount: fuse device not found, try 'modprobe fuse' first

Затем, как подсказывает сообщение об ошибке, я запускаю:

# modprobe fuse
bash: modprobe: command not found

В некоторых других вопросах я видел, что мне следует запустить контейнер докеров в привилегированном режиме, но я не могу найти, как это сделать с контейнером, запущенным в экземпляре GAE. Есть ли другой путь?

Проблема заключается в контексте безопасности и привилегиях:

В Куберенте:

securityContext:
  capabilities:
    add:
    - SYS_ADMIN
  privileged: true

В Docker вы можете попробовать этот вопрос