Can't run ./launcher rebuild app - Docker storage driver is unsupported

So you are on RHEL 7, which doesn’t have AUFS support. The next recommended storage driver is overlayfs. You need to change the “aufs” parameter in docker.conf to “overlay” or “overlay2”.

And hold on, you probably will run into another problem if you system is installed all by default setting. Check this post for detail.

5 Likes

Thanks changing from aufs to overlay in the docker.conf file it works and now as you said I have the bootstrap fail :slight_smile:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && chown -R discourse /var/www/discourse failed with return #<Process::Status: pid 270 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem update bundler", "chown -R discourse $home"]}
3aaada322e988d6195fb100e12a136411233baec152e6d0cec43eba5af46a563
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

so i´m going to check out those Posts Bootstrap fails on CentOS 7

Care to explain why would this happen? I mean, we didn’t face issues before with this until some changes were done

There are clear instructions there, if you are going for an unsupported install read the source code of launcher and edit out the section you don’t like.

1 Like

I’ve just done a git pull on the /var/discourse directory of my host, and am now getting warnings about using devicemapper. I followed the basic install instructions for digital ocean when I set it up last year, and haven’t messed with any docker settings.

What’s the best way to proceed? Should I be trying to change the storage driver, or starting up a new droplet and restoring a backup?

2 Likes

Give this a try it should work.

We store nothing critical in AUFS or whatever storage driver you have going. All important data is stored on the host in the /var/discourse folder.

6 Likes

You can:

  1. Stop your forum and docker daemon.
  2. Move/rename the /var/lib/docker folder.
  3. Backup /var/discourse.
  4. Change docker storage driver.
  5. Start up docker daemon. Then you will notice your discourse container is gone. Don’t panic, it’s only the container definition gone, not data.
  6. run launcher bootstrap and you will get a new container created and still pointing to your existing data. Your site will just up running without change.

You don’t have to create a new droplet if you have no problem in step #4.

2 Likes

I had this problem as well

Expanding on the points above, this is what worked for me on my Linode instance (running Ubuntu)

  1. Edit “/etc/default/docker”
  2. Add DOCKER_CONF="--storage-driver=overlay" to the file (and save)
  3. Run the following commands
cd /var/discourse
sudo launcher stop app
sudo service docker stop
sudo mv /var/lib/docker ~/docker_tmp
sudo cp -r . ~/discourse_backup
sudo service docker start
sudo launcher rebuild app
sudo launcher start app
6 Likes

For me this didn’t work, i had to use:

DOCKER_OPTS="--storage-driver=overlay"

You can confirm if it works for you by running:

docker info | grep Storage
4 Likes

@sam Hi I am still unable to change device storage. Tried all above mentioned process.
Aws ubuntu 12.04 precise 3.2.* kernel
Can anyone help!!!

Ubuntu 12.04? Why bother, that’s so old!

Current live production server is 12.04 precise 3.2.* kernel…so only

End of life for precise is now: https://www.ubuntu.com/info/release-end-of-life

It’s time to upgrade.

4 Likes

Hi @kraml I created a partition with the indicated format ext4, make a copy of /var/lib/docker named /var/lib/docker_old and leave a copy of /var/lib/docker with all its files, mount my partition With the correct type of FS with the command
Sudo mount /dev/sda1/ /var/lib/docker, as I have RHEL also make the prompts to create the docker.conf inside /etc/systemd/system/docker.service.d/ specifying ExecStart=/usr/bin/dockerd --storage-driver=overlay but I can not get it to start the Docker service since it gives me the following error:

[Cevmf @ server discourse] $ sudo systemctl status docker -l
[Sudo] password for cevmf:
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─docker.conf
   Active: failed (Result: exit-code) since Wed 2017-05-03 14:13:32 EDT; 7 minutes ago
     Docs: https://docs.docker.com
  Process: 8961 ExecStart=/usr/bin/dockerd --storage-driver=overlay (code=exited, status=1 / FAILURE)
 Main PID: 8961 (code=exited, status=1 / FAILURE)
   Memory: 1.5M
   CGroup: /system.slice/docker.service

May 03 14:13:31 server dockerd [8961]: time="2017-05-03T14: 13: 31.970782327-04: 00" level=info msg="libcontainerd: new containerd process, pid: 8964"
May 03 14:13:32 server dockerd [8961]: Error starting daemon: error initializing graphdriver: invalid argument

Any ideas?

That’s really more of a Docker/sysadmin question. You might try on a docker forum or stackexchange.

Remove the spaces around the equals. Spaces separate command line arguments, they’re not just for aesthetics.

3 Likes

Besides of what Matt mentioned about spaces around “=”, here you also missed a space between the partition and the mount dir. Was it only a typo in your post or you actually ran the command like this?

Sorry when I copied the text in the page something made those changes, I corrected it, and yes the mount command was written with a space mount /dev/sda1 /var/lib/docker

Thanks Matt I don´t know why it pasted like that, but I corrected it.

It finally work and with the Discourse new version so far v1.8.0.beta11 +87 Thanks all for your help @kraml [quote=“kraml, post:47, topic:56927”]
You can:

Stop your forum and docker daemon.
Move/rename the /var/lib/docker folder.
Backup /var/discourse.
Change docker storage driver.
Start up docker daemon. Then you will notice your discourse container is gone. Don’t panic, it’s only the container definition gone, not data.
run launcher bootstrap and you will get a new container created and still pointing to your existing data. Your site will just up running without change.
[/quote]

1 Like