web_only images do not install postgres or redis, minimizing image sizes for setups that do not require those components. release and dev images still install postgres and redis, but do it later in the process. remove rm runs rm no longer affects image sizes as we are no longer squashing images |
||
---|---|---|
.. | ||
base | ||
discourse_dev | ||
discourse_test | ||
README.md | ||
auto_build.rb |
README.md
Docker images
Building new images
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.
More about the images
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.