discourse_docker/image
Jeff Wong cc9c36e59d
FEATURE: introduce web_only images
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
2025-05-18 09:46:39 -07:00
..
base FEATURE: introduce web_only images 2025-05-18 09:46:39 -07:00
discourse_dev FEATURE: introduce web_only images 2025-05-18 09:46:39 -07:00
discourse_test Separate dependencies and browser installation (#956) 2025-05-12 10:11:35 +01:00
README.md FEATURE: Update base image and set default to postgresql 15 (#909) 2025-01-29 10:20:49 +03:00
auto_build.rb FEATURE: introduce web_only images 2025-05-18 09:46:39 -07:00

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 Dockerfiles 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.