To build a new image, just run ruby auto_build.rb image-name
. The build process will build a local image with a predefined tag.
Images and tag names are defined here.
A note about --squash: By default we squash the images we serve on Docker Hub. You will need to enable experimental features on your Docker daemon for that.
See both auto_build.rb
and the respective Dockerfile
s for details on how all of this happens.
base (discourse/base)
All of the dependencies for running Discourse. This includes runit, postgres, nginx, ruby, imagemagick, etc. It also includes the creation of the "discourse" user and /var/www
directory.
discourse_dev (discourse/discourse_dev)
Adds redis and postgres just like the "standalone" template for Discourse in order to have an all-in-one container for development. Note that you are expected to mount your local discourse source directory to /src
. See the README in GitHub's discourse/bin/docker for utilities that help with this.
Note that the discourse user is granted "sudo" permission without asking for a password in the discourse_dev image. This is to facilitate the command-line Docker tools in discourse proper that run commands as the discourse user.
discourse_test (discourse/discourse_test)
Builds on the discourse image and adds testing tools and a default testing entrypoint.
discourse_bench (discourse/discourse_bench)
Builds on the discourse_test image and adds benchmark testing.
discourse_fast_switch (discourse/discourse_fast_switch)
Builds on the discourse image and adds the ability to easily switch versions of Ruby.