chengjk
By:
chengjk

how to put dokku data into block storage?

January 7, 2017 848 views
Dokku Block Storage

By default Dokku have to directory /home/dokku and /var/lib/dokku/. How can i store it in block storage? Purpose in future if upgrade process of the host machine fail i can just unattached block storage, start new droplet, install dokku, mount block storage and all done...

2 Answers
jtittle1 January 7, 2017
Accepted Answer

@chengjk

You can read the guide below to setup your block storage:

https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean#preparing-volumes-for-use-in-linux

From there, you have a few options: symlink directories or mount them. But before you do anything below, make sure you backup backup backup. Once you rm -rf a directory, it's gone and it's not coming back.

1). Symlink Directories

Since /home/dokku is the current home directory, you would simply create a new directory on the block storage device:

mkdir -p /path/to/block/device/dokku

Copy current data from /home/dokku to the new location:

cp -R /home/dokku/* /path/to/block/storage/dokku

NOTE: Before the next step, make sure all data was successfully copied to the new directory!

Now delete the current directory and create a symlink to the new one:

sudo rm -rf /home/dokku
sudo ln -s /home/dokku /path/to/block/storage/dokku

2). Mount Directories

mkdir -p /path/to/block/device/dokku

Copy current data from /home/dokku to the new location:

cp -R /home/dokku/* /path/to/block/storage/dokku

NOTE: Before the next step, make sure all data was successfully copied to the new directory!

Now delete the current directory and mount to the new one:

sudo rm -rf /home/dokku
sudo mount --bind /home/dokku /path/to/block/storage/dokku

Now this is NOT permanent, so you need to modify fstab and place an entry in there as well:

nano /etc/fstab

and paste in:

/home/dokku   /path/to/block/storage/dokku   none    bind
DigitalOcean's Block Storage allows you to create and attach additional storage volumes to your DigitalOcean Droplets. Volumes are an independent resource that can easily be moved from one Droplet to another within the same datacenter. Attached volumes function like locally connected storage drives, allowing you to manage your storage with familiar tools and techniques.

Instead of copying files is better to move the folder

mv /home/dokku /path/to/block/storage/

When it says "Now delete the current directory and mount to the new one:" the command shuld be:

sudo rm -rf /home/dokku
mkdir /home/dokku
sudo mount --bind /path/to/block/storage/dokku /home/dokku

and /etc/fstab should be

/path/to/block/storage/dokku  /home/dokku   none    bind
Have another answer? Share your knowledge.