The Hello World version
Connect to your Lightsail instance and create a path for the Ghost content. I created separate paths for each blog hosted on my Lightsail instance so they can be managed independently.
mkdir -p ~/websites/cronspam.org/content
Then launch the Docker image for Ghost. This will automatically pull the Docker image from Dockerhub:
docker run -d \
--name blog \
-e url=http://cronspam.org \
-p 80:2368 \
-v /home/ec2-user/websites/cronspam.org/content:/var/lib/ghost/content \
You can visit the new site at: http://cronspam.org
And the admin page is at
WARNING: Go to the admin page ASAP to create the
admin account, until you do it's available for anyone to claim - the first visitor becomes the
docker-compose. It's always annoying that it's not part of the official Docker tools (yes, I know why, and it's still annoying).
# Install `docker-compose` from Docker
sudo curl -L \
https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) \
# Fix the permissions
sudo chmod +x /usr/local/bin/docker-compose
# Verify it works
~/websites/cronspam.org/cronspam.org.yaml Docker compose file to configure the Docker container. I created a separate Docker compose file for each blog hosted on my Lightsail instance so they can be managed independently.
Run the compose file:
docker-compose -f ~/websites/cronspam.org/cronspam.org.yaml up --detach