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

«Нет такого файла или каталога» при монтировании, созданном с использованием образа golang: alpine Docker

Я создал вилка из Образ передачи докеров 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