Как установить объем для dokku-persistent-storage

Я пытаюсь использовать dokku-persistent-storage, поэтому мои загрузки для моего приложения rails остаются на сервере, но я не совсем понимаю, как построить путь, так как я новичок в Dokku и Докер. (Я запускаю это на капле Ubuntu в Digital Ocean)


Я не уверен, что это должно быть примерно так:

[SERVER IP ADDRESS]/home/dokku/myapp/public_folder

or

/home/dokku/myapp/public_folder

или если я далеко, и это должно быть что-то совершенно другое.


Вот что об этом говорится в разделе github:

В папке приложений (/home/dokku/app_name) создайте файл с именем PERSISTENT_STORAGE.

Внутри этого файла перечислите по одной карте тома/тому на строку для монтирования. Например:

/host/path:/container/path
/another/container/path

В приведенном выше примере следующие аргументы будут переданы в докер во время развертывания и запуска докера:

-v /host/path:/container/path -v /another/container/path

Информацию о перемещении томов Docker можно найти здесь: http://docs.docker.io/en/latest/use/working_with_volumes/


person NineBlindEyes    schedule 18.01.2014    source источник
comment
Примеры, которые вы приводите, относятся к объемам данных. Эти тома физически находятся под /var/lib/docker/vfs/dir для стандартной установки. Чтобы узнать, какая папка является корневой для вашего запущенного контейнера, вы можете попробовать docker inspect <container id> | less и найти Volume строк. Там вы найдете точный путь. Это полезно? Если да, то я могу правильно ответить на вопрос.   -  person Eric Platon    schedule 05.02.2014
comment
В качестве альтернативы, если вы хотите выбрать точный путь на хосте Docker, возможно, вам нужен синтаксис с монтированием хоста. Затем путь на хосте и контейнеры свободны — просто убедитесь, что они существуют. Обратите внимание, что путь к контейнеру указан относительно корня контейнера. Итак, /container/path укоренен в контейнере, хотя он начинается с /.   -  person Eric Platon    schedule 05.02.2014
comment
Ошибка: заменить /var/lib/docker/vfs/dir на /var/lib/docker/volumes.   -  person Eric Platon    schedule 05.02.2014
comment
По-видимому, такая же ситуация: stackoverflow.com/questions/30605774/   -  person maiconsanson    schedule 02.07.2015


Ответы (2)


Я не увлекаюсь Ruby или dokku, но, если я правильно понял, вы хотите, чтобы ваш докер имел постоянное хранилище на хост-компьютере.

Файл PERSISTENT_STORAGE, как указано в документации, содержит сопоставления из каталогов файловой системы хоста в каталоги файловой системы вашего контейнера (переведенные в аргументы -v CLI).

Поэтому вам следует сопоставить каталог ваших загрузок в контейнере с нужным каталогом на хосте.

Например, если загрузки вашего приложения сохраняются в этом каталоге (внутри контейнера докера):

/home/dokku/myapp/public_folder

и вы хотите, чтобы они хранились на вашем хосте по адресу:

/home/some/dir

тогда, как я понимаю, содержимое файла PERSISTENT_STORAGE должно быть:

/home/some/dir:/home/dokku/myapp/public_folder

Надеюсь, я вас правильно понял.

person AlonL    schedule 09.06.2014

Используйте опцию Dokku storage:mount.

  1. Вам потребуется подключиться к хосту dokku по SSH: ssh dokku@host

  2. Выполните следующую команду, чтобы связать каталог хранилища для этого приложения с папкой app/public/uploads, например:

    storage:mount <app> /var/lib/dokku/data/storage:/app/public/uploads

Документация Dokku подробно описывает это по адресу: http://dokku.viewdocs.io/dokku/advanced-usage/persistent-storage/

person Caleb    schedule 14.02.2017