Merge pull request #1524 from callahad/linode

Document idiosyncracies with Linode - Fixes #1226
This commit is contained in:
Jose Diaz-Gonzalez
2015-10-02 14:20:48 -04:00
2 changed files with 29 additions and 20 deletions

View File

@@ -47,6 +47,12 @@ dokku_install_package() {
apt-get install -qq -y apt-transport-https
echo "--> Installing docker"
if uname -r | grep -q linode; then
echo "--> NOTE: Using Linode? Docker might complain about missing AUFS support."
echo " See http://progrium.viewdocs.io/dokku/getting-started/install/linode/"
echo " Installation will continue in 10 seconds."
sleep 10
fi
curl -sSL https://get.docker.com/ | sh
echo "--> Installing dokku"

View File

@@ -1,36 +1,39 @@
# Installing on Linode
Due to how Linode installs custom kernels, Linode instances *require* a reboot before they can fully work with Docker/Dokku. The Official Dokku StackScript should take care of this process for you, and will email notify you when the instance is running and you can proceed with installation.
When installing Dokku on a Linode server, you'll likely see an error during Docker installation:
## Using StackScript
> Warning: current kernel is not supported by the linux-image-extra-virtual package. We have no AUFS support. Consider installing the packages linux-image-virtual kernel and linux-image-extra-virtual for AUFS support.
Deploy using the following (experimental) Official StackScript:
After 10 seconds, the installation will continue as normal.
- https://www.linode.com/stackscripts/view/11348
This warning is the result of Linode using its own kernel, which does not support AUFS, instead of using the kernel supplied by Ubuntu. If you ignore the warning, Docker will fall back to using the DeviceMapper storage backend and Dokku will work normally. However, AUFS is better tested and will perform better.
## Without StackScript
If you would like to use AUFS, follow the steps below to install Ubuntu's kernel and configure your server to boot it instead of Linode's.
* Build a Ubuntu 13.04 instance
## Preparing your Linode for AUFS
* Follow these instructions: https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distributionsupplied-kernel-with-pvgrub#ubuntu-1304-raring
__Warning__: These steps will delete *everything* on your Linode.
* If `apt-get update` no longer works:
1. Open your server's dashboard in the [Linode Manager](https://manager.linode.com/).
* Verify if apt-get is trying to use ipv6 instead of ipv4 (e.g. you read something like "[Connecting to us.archive.ubuntu.com (2001:67c:1562::14)]" and apt-get would not proceed). In that case, follow these instructions: http://unix.stackexchange.com/questions/9940/convince-apt-get-not-to-use-ipv6-method (append "precedence ::ffff:0:0/96 100" to /etc/gai.conf)
2. Make sure your Linode is [using KVM](https://www.linode.com/docs/platform/kvm#how-to-enable-kvm), not Xen, for virtualization.
* OR: change `/etc/apt/sources.list` to one mentioned in http://mirrors.ubuntu.com/mirrors.txt
3. In the "Rebuild" tab, select "Ubuntu 14.04 LTS", set a root password, and rebuild.
* Run the following commands:
4. Once your Linode has been created, click "Boot" and wait for it to complete.
```shell
apt-get update
5. SSH into your Linode as root and run the following commands:
apt-get install lxc wget bsdtar linux-image-extra-$(uname -r)
apt-get update
apt-get -qq upgrade
apt-get -qq install linux-image-virtual linux-image-extra-virtual
modprobe aufs
```
* After this, you can install dokku the default way:
6. When prompted, install Grub onto the first hard drive.
```shell
wget -qO- https://raw.githubusercontent.com/progrium/dokku/master/bootstrap.sh | sudo bash
```
7. Back in your server's dashboard, click "Edit" on its Configuration Profile
8. Change the "Kernel" option to "GRUB 2" and save your changes.
9. Lastly, reboot the Linode.
Once your server comes back online, you'll be running Ubuntu's default kernel. You can now follow Dokku's [normal installation instructions](http://progrium.viewdocs.io/dokku/installation) and `bootstrap.sh` will take care of everything else.