In this post we will setup Ghost 2.0.3 for the Raspberry Pi on Docker Swarm
Dockerfile
Our dockerfile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
Our Boot Script
Our entrypoint script docker-entrypoint.sh
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
|
The entrypoint script takes a couple of environment variables, as you can see if they are not defined, defaults will be inherited.
Configurable Environment Variables:
1 2 3 4 5 6 7 8 |
|
Building our Ghost Image
I have a public image available if you dont want to build/push, but for building:
1
|
|
Deploy Ghost with Traefik
Our ghost-compose.yml
with traefik will look like the following, note that I mounted the source path to the container’s path, the source path is running on a replicated glusterfs volume, which can be setup following this post
Also for this demonstration I was using the domain pistack.co.za, where you need to utilize the domain of your choice.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
Deploy the stack:
1
|
|
Once the service is up, you will be able to reach your blog on the provided traefik.frontend.rule
. If you don’t have traefik running, you can follow this post to get traefik up and running.