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/themes
The 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 redmine
Now 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_1
From 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/themes
Now 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/themes
At 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:
- mariadb
Now you can restart Redmine:
sudo systemctl restart redmine
and set your new theme by selecting it in Administration -> Settings -> Display.