How to use custom themes with the Bitnami Redmine Docker image
In a previous post I detailed how to install Redmine on Linux using the excellent Bitnami docker image.
This post shows you how to install a custom theme like A1 (which I used successfully for more than 5 years) if you use the bitnami Docker image. We will assume that you installed redmine in /var/lib/redmine and your systemd service is called redmine.
Note: If you get any permission denied errors, try running the same command using sudo.
First, we need to create the themes directory.
sudo mkdir /var/lib/redmine/themesThe first thing we need to do is to copy the current (default) themes to that directory, since Redmine won’t be able to start up if the default theme isn’t available in the correct version.
In order to do this, we must first ensure that your container is running:
sudo systemctl start redmineNow we can find out the container ID of the running redmine container:
uli:/var/lib/redmine$ docker container ps | grep redmine
ae4de10d0b41 bitnami/redmine:latest "/app-entrypoint.sh …" 30 minutes ago Up 30 minutes 0.0.0.0:3718->3000/tcp redmine_redmine_1
c231d11c48e9 bitnami/mariadb:latest "/entrypoint.sh /run…" 30 minutes ago Up 30 minutes 3306/tcp redmine_mariadb_1From these lines, you need to select the line that says redmine_redmine_1 at the end. The one that lists redmine_mariadb_1 at the end is the database container and we don’t need that one for this task.
From that line, copy the first column - this is the container ID - e.g. ae4de10d0b41 in this example.
Now we can copy the default theme folder:
docker cp ae4de10d0b41:/opt/bitnami/redmine/public/themes /var/lib/redmine/themesNow copy your custom theme (e.g. the a1 folder) to /var/lib/redmine/themes.
The next step is to fix the permissions. The bitnami container uses the user with UID 1001, so we need to change the owner to that. Repeat this every time you changed something in the themes directory:
sudo chown -R 1001:1001 /var/lib/redmine/themesAt this point we need to edit the docker-compose config (in /var/lib/redmine/docker-compose.yml) to mount /var/lib/redmine/themes in the correct directory. This is pretty easy: Just add - '/var/lib/redmine-szalata/themes:/opt/bitnami/redmine/public/themes' to the volumes section of the redmine container.
The finished config file will look like this:
services:
mariadb:
image: 'bitnami/mariadb:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- '/var/lib/redmine/mariadb_data:/bitnami'
redmine:
image: 'bitnami/redmine:latest'
environment:
- REDMINE_USERNAME=admin
- REDMINE_PASSWORD=redmineadmin
- [email protected]
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=25
- [email protected]
- SMTP_PASSWORD=yourGmailPassword
ports:
- '3718:3000'
volumes:
- '/var/lib/redmine/redmine_data:/bitnami'
- '/var/lib/redmine/themes:/opt/bitnami/redmine/public/themes'
depends_on:
- mariadbNow you can restart Redmine:
sudo systemctl restart redmineand set your new theme by selecting it in Administration -> Settings -> Display.