New Install: docker: Failed to create the container ID file: open cids/app_bootstrap.cid: no such file or directory

I’m having issues deploying Discourse to a VM in my test environment. The VM is configured with 1 core and 1gb of ram. It is running on ubuntu 18.04, via docker’s basic install method. I am running these as root. I’ve removed sensitive data from the output below.

root@progcodedev-01:/var/discourse# ./discourse-setup
The configuration file containers/app.yml already exists!

. . . reconfiguring . . .


Saving old file as app.yml.2019-03-11-153340.bak
Stopping existing container in 5 seconds or Control-C to cancel.
app was not started !

Found 1GB of memory and 1 physical CPU cores
setting db_shared_buffers = 128MB
setting UNICORN_WORKERS = 2
containers/app.yml memory parameters updated.

ENTER to continue, 'n' to try again, Ctrl+C to exit:

Configuration file at  updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
cd /pups && git pull && /pups/bin/pups --stdin
docker: Failed to create the container ID file: open cids/app_bootstrap.cid: no such file or directory.
See 'docker run --help'.
cat: cids/app_bootstrap.cid: No such file or directory
"docker rm" requires at least 1 argument.
See 'docker rm --help'.

Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]

Remove one or more containers
rm: cannot remove 'cids/app_bootstrap.cid': No such file or directory
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
root@progcodedev-01:/var/discourse#

Any idea what could be going on?

Here are the current directory permissions:

root@progcodedev-01:/var/discourse# ls -la
total 128
drwxr-xr-x 11 root root  4096 Mar 11 14:34 .
drwxr-xr-x 14 root root  4096 Mar 11 14:34 ..
drwxr-xr-x  2 root root  4096 Mar 11 14:34 bin
drwxr-xr-x  2 root root  4096 Mar 11 15:27 cids
drwxr-xr-x  2 root root  4096 Mar 11 15:35 containers
-rwxr-xr-x  1 root root 11394 Mar 11 14:34 discourse-doctor
-rwxr-xr-x  1 root root 20820 Mar 11 14:34 discourse-setup
drwxr-xr-x  8 root root  4096 Mar 11 15:20 .git
-rw-r--r--  1 root root   309 Mar 11 14:34 .gitignore
drwxr-xr-x  8 root root  4096 Mar 11 14:34 image
-rwxr-xr-x  1 root root 22215 Mar 11 14:34 launcher
-rw-r--r--  1 root root  1099 Mar 11 14:34 LICENSE
-rw-r--r--  1 root root  8900 Mar 11 14:34 README.md
drwxr-xr-x  2 root root  4096 Mar 11 14:34 samples
drwxr-xr-x  2 root root  4096 Mar 11 14:34 scripts
drwxr-xr-x  2 root root  4096 Mar 11 14:34 shared
drwxr-xr-x  3 root root  4096 Mar 11 14:34 templates
-rw-r--r--  1 root root  1266 Mar 11 14:34 Vagrantfile

Can you try a bootstrap?

./launcher bootstrap app

「いいね!」 1

I believe I got this working now. I noticed while looking at syslog that the docker container was having issues with it’s networking. When I originally installed Ubuntu, I opted to use the installer supplied version of docker. I re-rolled the instance and this time used the script on get.docker.com to install docker. This version of docker worked fine and discourse is now running without issues (as far as I can tell.)

「いいね!」 6

Just in case some runs into it again…

I’ve had the same problem with snap installed Docker on Ubuntu 20.04. Syslog was full of docker0 interface errors.

Jan 30 14:28:17 mel kernel: [169365.081105] veth23ac856: renamed from eth0
Jan 30 14:28:17 mel networkd-dispatcher[782]: WARNING:Unknown index 103 seen, reloading interface list
Jan 30 14:28:17 mel systemd-udevd[103811]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
Jan 30 14:28:17 mel systemd-networkd[730]: veth7651758: Link DOWN
Jan 30 14:28:17 mel kernel: [169365.208636] docker0: port 1(veth7651758) entered disabled state
Jan 30 14:28:17 mel kernel: [169365.212027] device veth7651758 left promiscuous mode
Jan 30 14:28:17 mel kernel: [169365.212031] docker0: port 1(veth7651758) entered disabled state
Jan 30 14:28:17 mel systemd-udevd[103811]: veth23ac856: Failed to get link config: No such device

Latest package straight from docker.com repository solved the problem…

I think this is related to Ubuntu installing docker as a snap with its own virtual filesystem. I would try to stick to this config, so working on configuring /var/discourse as visivle for the docker daemon.

Ok I can confirm, the snap isolation was the issue for my case. (it might be the volume mount not the --cidfile as suspected, since that works and is not used)

Since Ubuntu is “still working on it” (or at least I could not find how to expose filesystems) and the --classic option also does not work for the docker snap:

snap remove docker && snap install --classic docker
Warning: flag --classic ignored for strictly confined snap docker

I went the “easy” route and used /home/discourse instead of /var/discourse as the base dir. (it does not even have to run as this user).

I can understand that you would require upstream docker, but on the other hand I can also understand Ubuntu to support their own version, so its a rock and hard place for users.