Right, you can still switch between environments by doing:

    $ sudo docker run -e NODE_ENV=development ...

And run grunt (or any other command) by overriding the entrypoint:

    $ sudo docker run -e NODE_ENV=development -entrypoint grunt fish/ghost test-unit

But since the config right now requires you to set the production variables and has no section for development, this isn't really working. So there are three options:

0) Not support running tests in docker container: I would remove casper and phantom and it can only be used for production deployment. If you aren't interested in using docker for development anyways/yet (which can speed up tests and make sure you run your tests always against a clean environment), there isn't that much benefit in supporting that right now.

1) Keep everything in production and use the env variables to point ghost to a test database for running tests. But this would mean all tests run with env set to production and I'm not sure that's even possible.

2) Change the config.js to read env variables only if node_env == production and add a development section for running test.

So what would you prefer?