How to install system packages in an application
All Divio applications are based on a Dockerfile that starts with base image that includes Linux.
If your application requires particular system packages, you can include them in
the Docker image, by listing the commands required to install them - typically,
using RUN apt-get - in the Dockerfile.
The commands in the Dockerfile are executed in order, so an appropriate
place to put such commands is early on, after FROM - for example, after:
FROM divio/base:1.1-py3.11-slim-bullseye
and before any other commands that might depend on the package.
You should include an apt-get update in the installation commands, and run
apt-get with the -y ("Say yes") option, for example:
RUN apt-get update
RUN apt-get install -y postgresql-client
to install the psql Postgres client.
To rebuild the docker image, installing the new packages:
docker compose build web
The build output will show the new RUN instructions being executed as part
of your build.