gcsfuse не может подключиться при сборке контейнера Docker - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь установить хранилище внутри моего контейнера во время docker build. Я прочитал другие темы, здесь , здесь и понял, что это может быть привилегированной проблемой. Эту проблему можно решить, добавив флаг --privileged в процесс docker run, но я бы хотел установить ведро прямо со сцены здания.

Прикрепленный к контейнеру, проверил, что установлены fuse и gcsfuse. GOOGLE_APPLICATION_CREDENTIALS установлено, нет проблем с доступом к API Google. Вот ошибка, которую я получаю.

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

Dockerfile

FROM gcr.io/google-appengine/python
.
.
.
ENV GCSFUSE_REPO=gcsfuse-jessie
RUN apt-get update && apt-get install -y ca-certificates \
    && echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" > /etc/apt/sources.list.d/gcsfuse.list \
    && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
    && apt-get update && apt-get install -y gcsfuse

# Config fuse
RUN chmod a+r /etc/fuse.conf
RUN perl -i -pe 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf

# Alter permission
RUN chmod a+w mount-folder

RUN gcsfuse -o --implicit-dirs bucket mount-folder
...