Docker scripts to run your own Taiga.
By far the easiest way of setting up Taiga in Docker is by running the
setup.sh script. So, if you just want to run it and you just don't care about what happens underneath, just run that script.
For example, it will make the requests to
http://boot2docker:8000/api/v1/... If you don't define this variable the script will assume it's
localhost (if you're using
boot2docker it will not work).
If you want to run the frontend manually, this is the command:
docker run -d --name taiga-front -p 80:80 -e API_NAME=$API_NAME --link taiga-back:taiga-back ipedrazas/taiga-front
Once you've successfully installed Taiga start a web browser and point it to
http://boot2docker. You should be greeted by a login page. The administrators username is
admin, and the password is
If you cannot authenticate, probably is that the API_NAME has not been set properly.
There is another script
run.sh that you can use to start your taiga containers once the installation has been succesful. You don't have to run it after the setup, just after stopping the containers.
We run a container based on the original image provided by PostgreSQL
docker run -d --name postgres postgres
Note about Volumes
If you try to mount volumes in OSX using
boot2docker you will see that it does not work. This is known problem and it only affects OSX. There's a solution though. You might want to extend the postgres docker image and add this line:
RUN usermod -u 1000 postgres
This change will fix the permission problem when mounting a volume.
To initialise the database
docker run -it --link postgres:postgres --rm postgres sh -c "su postgres --command 'createuser -h "'$POSTGRES_PORT_5432_TCP_ADDR'" -p "'$POSTGRES_PORT_5432_TCP_PORT'" -d -r -s taiga'" docker run -it --link postgres:postgres --rm postgres sh -c "su postgres --command 'createdb -h "'$POSTGRES_PORT_5432_TCP_ADDR'" -p "'$POSTGRES_PORT_5432_TCP_PORT'" -O taiga taiga'";
If you want to access the database, run the following container:
docker run -it --link postgres:postgres --rm postgres sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'
Once you are in psql you can check that indeed our user & database have been created:
# To list the users defined in our system use the following command \du # To list the databases, the command is \list
Before running our backend, we have to populate our database, to do so, Taiga provides a regenerate script that creates all the tables and even some testing data
# pull the image docker pull ipedrazas/taiga-back # regenerate tables docker run -it --rm --link postgres:postgres ipedrazas/taiga-back bash regenerate.sh
Once the database has been populated, we can start our Django application:
docker run -d -p 8000:8000 --name taiga-back --link postgres:postgres ipedrazas/taiga-back
Finally, we run the frontend
# pull the image docker pull ipedrazas/taiga-front # run the frontend docker run -d -p 80:80 --link taiga-back:taiga-back --volumes-from taiga-back ipedrazas/taiga-front
The frontend needs to know the URL of the backend. Those settings are specified in the
frontend/conf.json file. You can modify them and re-add them into the image by using a volume
docker run -d -p 80:80 --link taiga-back:taiga-back -v "$(pwd)"/frontend/conf.json:/taiga/js/conf.json:ro ipedrazas/taiga-front
## What's next?
The docker compose file needs some love and care but the next is to add RabbitMQ and the Taiga events plugged in.