Setting Environmental Variables for a Ghost Docker Container in Reclaim Cloud

Setting Environmental Variables for a Ghost Docker Container in Reclaim Cloud

If the title hasn't scared you away, then welcome!

Over the weekend I was struggling to get a mapped URL for a Ghost container on Reclaim Cloud resolving consistently to the main URL. While the home page worked, several subpages were defaulting to localhost:2386, which is hardcoded in the config.production.json file.* This is where that URL is normally defined, but Docker environmental variables are not actually read through this file, which is a bit of abstraction you have to wrap your head around when working with Docker. That file will work consistently if it's hosted on a stack, but in a Docker container you need an environmental variable file (or .env file). Another detail discovered on my journey towards understanding Docker. Thankfully I have Taylor Jadin to think this stuff through with now given he's a bit further ahead in his grasp of containers and has played with Reclaim Cloud a fair bit.

So, the proper way to deal with this issue in Reclaim Cloud is to add the url variable to the container environment. In the Ghost application container go to Additional Settings --> Variables:

Accessing Variables menu on a Reclaim Cloud container
Accessing Variables menu on a Reclaim Cloud container

From there click on the green Add button:

Image of Add button and Ghost variables
Add button and pre-existing Ghost container variables

After that you need to  add the url variable as illustrated below (keep in mind url needs to be lowercase):

Adding Ghost url variable
Adding Ghost url variable in application container

This will ensure your environment loads cleanly over a mapped domain, and all references to the domain url are updated throughout the container. Be sure to restart the application container (not the load balancer) and give it a minute or so and the site will come back up.

This solution helped me stop using the hack of cloning the site with an edited url field in the config.production.json file to fix the issue, while also solving my adjacent issue with setting the Newsletter/Support emails. I'll write more on that in my next post about Setting Up Email for a Ghost Newsletter.

Ghost mail__from variable
Adding Ghost's mail__from variable in Reclaim Cloud

Another variable I added for Ghost was mail__from -you can see an example of this above for the address

*This file is found in the var/lib/ghost/ directory of the official Ghost Docker image.

Cover image Rainy Dark Tree thanks to PxHere.