How to Setup Taiga with Docker on an ARM Machine
Recently, I wanted to deploy Taiga on an ARM machine and was a bit confused that there is no official Docker image for Taiga. At first, this seemed to prevent using the official docker-compose setup.
After some digging, I realized it would be best to modify the setup so that it can run on ARM. Surprisingly, this was quite easy and straightforward, mostly thanks to the very well-organized structure of the Taiga repositories – thank you, Taiga devs!
As I do not have enought capacity to maintain my own images for taiga, I decided to create some simple instructions, such that anyone can reproduce the process.
Before we start, the obligatory disclaimer:
This is not an official guide. I am in no way associated with Taiga. And there is no warranty whatsoever if you use this guide, that the world will not explode in a big mess. And there is no warranty either that it wouldn’t, if you don’t.
The Actual HOWTO
The process is quite simple: clone the official taiga-docker repository and all other repos required to build the Docker images, right into that repository. Switch to the stable branch everywhere. Modify the Dockerfile of each repository for ARM compatibility. Then modify docker-compose.yml in the taiga-docker repository to use your custom builds instead of the official images. From that point on, follow the
official Docker setup guide, and you’re done.
Step-by-Step Guide
- Clone all repositories and set them to use the
stablebranch for production:git clone --branch stable --single-branch https://github.com/taigaio/taiga-docker cd taiga-docker git clone --branch stable --single-branch https://github.com/taigaio/taiga-back git clone --branch stable --single-branch https://github.com/taigaio/taiga-front git clone --branch stable --single-branch https://github.com/taigaio/taiga-protected git clone --branch stable --single-branch https://github.com/taigaio/taiga-events - Edit
taiga-docker/docker-compose.ymland replace theimagesections withbuildsections. Here’s a diff:--- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,7 +55,9 @@ services: - taiga taiga-back: - image: taigaio/taiga-back:latest + build: + context: ./taiga-back/ + dockerfile: docker/Dockerfile environment: *default-back-environment volumes: *default-back-volumes networks: @@ -69,7 +71,9 @@ services: condition: service_started taiga-async: - image: taigaio/taiga-back:latest + build: + context: ./taiga-back/ + dockerfile: docker/Dockerfile entrypoint: ["/taiga-back/docker/async_entrypoint.sh"] environment: *default-back-environment volumes: *default-back-volumes @@ -97,7 +101,9 @@ services: - taiga taiga-front: - image: taigaio/taiga-front:latest + build: + context: ./taiga-front/ + dockerfile: docker/Dockerfile environment: TAIGA_URL: "${TAIGA_SCHEME}://${TAIGA_DOMAIN}" TAIGA_WEBSOCKETS_URL: "${WEBSOCKETS_SCHEME}://${TAIGA_DOMAIN}" @@ -109,7 +115,9 @@ services: # - ./conf.json:/usr/share/nginx/html/conf.json taiga-events: - image: taigaio/taiga-events:latest + build: + context: ./taiga-events/ + dockerfile: docker/Dockerfile environment: RABBITMQ_USER: "${RABBITMQ_USER}" RABBITMQ_PASS: "${RABBITMQ_PASS}" @@ -134,17 +142,19 @@ services: - taiga taiga-protected: - image: taigaio/taiga-protected:latest + build: + context: ./taiga-protected/ + dockerfile: docker/Dockerfile environment: MAX_AGE: "${ATTACHMENTS_MAX_AGE}" SECRET_KEY: "${SECRET_KEY}" - Now the really “hard” part. The Dockerfiles must be replaced with ARM versions. That means that you will need to copy each of the following Dockerfiles and politely ask an AI of your choosing to translate it to an ARM version of it. You may also ask impolitely and get the same results.
taiga-docker/taiga-back/docker/Dockerfile taiga-docker/taiga-front/docker/Dockerfile taiga-docker/taiga-protected/docker/Dockerfile taiga-docker/taiga-events/docker/Dockerfile - That’s it! After this, proceed with the
official Docker setup guide.