How I broke my website which actually made it better
My tinkering with things can sometimes result in extra parts lying around after the project is finished, and I don't know where they fit. The same was the case recently when updating this website. Well, I broke it—bad!
A little background. This website is running inside a Docker container which is load balanced behind an NGINX proxy Dockerized and Load balanced Ghostdatabases, and themes. This way, when new versions of Ghost came down the pipe, I would only have to deploy one, connect it to my volumes, and be off and running. Well, that. I've been upgrading both Docker and Ghost as new versions become available. However, I had a problem with my Ghost installation which I ignored until the recent release of Ghost 0.7.1.
The Ghost installation had volumes mounted to my host for media, databases, and themes. This way, when new versions of Ghost came down the pipe, I would only have to deploy one, connect it to my volumes, and be off and running. Well, that was the idea.
In Prod, I couldn't deploy a new Ghost image without it breaking everything. My ugly workaround was to connect to the Ghost container and manually upgrade Ghost from inside the container. Ewww, Ugly!
I found some nice Ghost projects on GitHub; however, they did not meet all my requirements, so I combined several projects into a docker-compose project. Now, I can control my Ghost blog via docker-compose and easily build in more functionality later on like scaling, High Availability, and Continuous Integration/Deployment which I'm using this project as the basis.
My blog can now easily be updated when new versions of Ghost come out and is flexible enough to add more features. Check back for the next phase of this project.
Check out my Ghost-Standalone Project
Follow me
If you liked this article, Follow Me on Twitter to stay updated!