The Beginning, Ghost setup with Docker

I thought setting up Ghost with Docker is simple and straight forward. Just start the container and write your first post. Let's begin by starting our container:

$ docker run --name some-ghost -v /path/to/ghost/blog:/var/lib/ghost ghost

And it's done, right? Nope.
The container starts in development mode, URLs are pointing to localhost, why?

A quick look into config.js shows that there is also a production config, but how to enable it? Google...
tl;dr; Just change the node.js ENV

-e NODE_ENV=production

Alright, that's simple and node.js like. But why don't you mention it in the description?

But wait, it still does not work?

ERROR: Unable to access Ghost's content path:  
  EACCES, permission denied '/usr/src/ghost/content/apps/snigv548ownvs4'

Check that the content path exists and file system permissions are correct.  
Help and documentation can be found at  

On further reading the issue above, it seems like I'm not the only one facing this problem.

Adding this line to your production config solves it.

paths: {  
  contentPath: path.join(process.env.GHOST_CONTENT, '/')

Now my blog is up and running, but I could save some time if:

  • Docker README would mention NODE_ENV
  • Path setting would be there by default