discourse/bin/docker/README.md

1.8 KiB

Developing using Docker

Since Discourse runs in Docker, why not develop there? If you have Docker installed, you should be able to run Discourse directly from your source directory using a Discourse development container.

Step-by-step

It should be as easy as (from your source root):

./bin/docker/boot_dev --init
    # wait while:
    #   - dependencies are installed,
    #   - the database is migrated, and
    #   - an admin user is created (you'll need to interact with this)
./bin/docker/rails s

... then open a browser on http://localhost:3000 and voila!, you should see Discourse.

When you're done, you can kill the Docker container with:

./bin/docker/shutdown_dev

Note that data is persisted between invocations of the container in your source root tmp/postgres directory.

Caveats

There seems to be an issue with the ember-data-source gem installed by default (2.3.0.beta.5). It's missing its dist directory. I've worked around this by acquiring that commit, building the distribution locally, and patching it into /usr/local/lib/ruby/gems/2.3.0/gems/ember-data-source-2.3.0.beta.5 by hand. I believe later versions of the gem fix this, but the very next version (2.3.0 proper) bumps the ember-source dependency up to 2.0, which Discourse isn't using yet.

You can get boot_dev to patch for you by passing --patch local/path/to/ember-data-source/dist on the command-line. You should only have to do this once (like --init).

Other Notes

Where is the container image/Dockerfile defined?

The Dockerfile comes from discourse/discourse_docker on GitHub, in particular image/discourse_dev.