Я запускаю следующую команду внутри контейнера как обычный пользователь без полномочий root
gcsfuse --foreground --debug_fuse --debug_fs --debug_gcs --debug_http my-bucket/data
и это работает локально когда я запускаю контейнер с -- привилегированный
и это нормально.
Но то же самое не работает в Cloud Run (при использовании среды выполнения предварительного просмотра 2-го поколения). Я получаю следующую ошибку:
2022-05-13 12:08:41.547 CEST gcs: 2022/05/13 10:08:41.546642 Req 0x1: -> ListObjects("") (46,897367 мс): ОК
2022-05-13 12:08:41.551 CEST /usr/bin/fusermount: не удалось открыть /dev/fuse: разрешение отклонено
2022-05-13 12:08:41.551 CEST mountWithArgs: mountWithConn: Mount: mount: работает /usr/bin/fusermount: статус выхода 1
Все остальные строки журнала отладки, HTTP, GCS и т. д. показывают, что все работает.
Я создаю своего пользователя таким образом в моем Докерфайл
ВЫПОЛНИТЬ useradd -lmU joe\
&& mkdir -p /данные \
&& chown -R джо:джо /данные
ПОЛЬЗОВАТЕЛЬ Джо
документы говорят что я следует запускать gcsfuse от имени пользователя, который будет использовать файловую систему, а не от имени пользователя root, но это не работает. Любая идея, что я делаю неправильно?