Eh, Docker, we have a problem here…

Quick note for those who don’t know about Docker: Docker is a program that lets me take packaged-up programs (called images or containers) and run them without having to worry much about dependencies.

Today I decided to upgrade my version of Ghost Blog. I’m using the Docker image on a Digital Ocean droplet. Updating should be simple, I thought. I would take down the blog then spin it back up again after pulling down the latest Docker image. I ran docker stop ghost-blog, removed the container with docker rm ghost-blog then ran docker pull ghost:latest. The container came down without a problem.

Then the trouble began.

I tried restarting the image:

docker run -d --name ghost-blog -p 80:2368 -v /home/ghost/blog-data:/var/lib/ghost/content ghost

But when I ran docker ps, no docker containers were running. I tried looking at the log of the ghost-blog container and was greeted with this message:

tar: /var/lib/ghost/content.orig: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Hhmmm… I tried creating /var/lib/ghost/content.orig, but that didn’t help. I then copied my blog-data/ folder, blew the old folder away, then tried running again, but to no avail.

I was out of ideas, so I decided to inquire at the great oracle of DuckDuckGo. The first result was this lovely issue on GitHub that covered exactly the problem I was facing.

I created the directory specified and was able to fire up the docker container without a problem. I think I must have made an incompatible upgrade. ¯_(ツ)_/¯

Backup Woes

Running around as the root user of a system is always dangerous. I was painfully reminded of that today when I accidentally deleted my backup folder instead of moving its contents to the original location. 🤦🏻‍♂️Oops.

Fortunately, I had made another backup of all my content saved as a JSON file on my laptop. I fired up the docker container, opened to the website in a web browser, and imported all my old files. Day saved. 😌

Unfortunately I lost all my configurations. Not that there was a lot, but I did loose the Disqus integration as well as some settings for me as an administrator. Alas. I’ll fix the comments sometime later. Probably after midterms…

So, lessons: make backups. Then don’t delete the backups.

I am enjoying the Ghost blog. It’s pretty minimal and doesn’t get in my way. I just wish I had been a little more careful today.