Я создал вилка из Образ передачи докеров LinuxServer.io, добавив поддержку Google Cloud Storage.
Я использовал Докер-gcsfuse Эрнеста (chiaen) проект по сборке gcsfuse, а именно извлечение частей его Dockerfile и добавил в мой собственный. gcsfuse построен с использованием golang:alpine
образ.
Изображение успешно построено (в том числе gcsfuse
; Dockerfile инструктирует просто скопировать gcsfuse в /usr/local/bin
, и я проверил расположение исполняемого файла; кроме того, / dev / fuse правильно отображается со стороны хоста). Тем не мение, gcsfuse
отказывается монтировать, и логи выводятся Mount: stat /donwloads: no such file or directory
, enev, если каталог /downloads
на самом деле существует, и нужные разрешения уже были установлены (установлены на /etc/cont-init.d/20-config). Я даже пытался запустить из оболочки, но все равно не получается.
Отсутствует ли пакет или параметр для работы gcsfuse в моем (Alpine) образе Docker?
Если вы хотите воспроизвести, вы можете создать свою собственную локальную копию изображения, следуя инструкциям на README.md в моем репозитории (вам необходимо загрузить свой json-ключ в виртуальную машину) (amitie10g/docker-transmission
также доступен в Docker Hub).
Журналы доступны Вот.
Используемые образы ВМ:
Образы Docker, используемые для сборки:
Заранее спасибо.
Я решил это, построив mount.gcsfuse
помощник и заполнение /etc/fstab
файл в /etc/cont-init.d/20.config
:
echo "$BUCKET /downloads gcsfuse rw,user,noauto,key_file=/config/gcsfuse-key.json" >> /etc/fstab
Затем, бегая mount.gcsfuse
:
s6-setuidgid abc mount.gcsfuse $BUCKET /downloads