Docker Standalone
For anything but tests, you should have a dedicated MySQL (version 8.0) and Redis or Valkey (last stable recommended) databases.
At first run you will need to provide some information about the platform you want to deploy:
The Tuleap server name (without https) as
TULEAP_FQDNenvironment variableThe Database server name as
TULEAP_SYS_DBHOSTenvironment variable. See database installation for specific configuration.The database admin user (root or equivalent) as
DB_ADMIN_USERenvironment variableThe database admin user password as
DB_ADMIN_PASSWORDenvironment variableThe database application user (typically
tuleapadm) password asTULEAP_SYS_DBPASSWDenvironment variableThe Tuleap
adminuser password asSITE_ADMINISTRATOR_PASSWORDenvironment variable
Please check the environment variables to know what they stand for.
Warning
You cannot enforce encryption of Redis communication if you enabled Subversion because the underlying code, written in perl, doesn’t support encryption.
The data volume must be mounted on /data inside the container.
When running, the container exposes the following ports:
80TCP http traffic, automatically redirected to443443TCP https traffic22TCP ssh traffic (for git)
Tuleap Community
You can init docker image in command line:
$ docker run -ti \
    --restart always \
    --publish 22:22 \
    --publish 80:80 \
    --publish 443:443 \
    --hostname tuleap-ce.example.com \
    -e TULEAP_FQDN=tuleap-ce.example.com \
    -e TULEAP_SYS_DBHOST=db-tuleap-ce.example.com \
    -e DB_ADMIN_USER=root \
    -e DB_ADMIN_PASSWORD=${MYSQL_ROOT_PASSWORD} \
    -e TULEAP_SYS_DBPASSWD=${TULEAP_SYS_DBPASSWD} \
    -e SITE_ADMINISTRATOR_PASSWORD=${SITE_ADMINISTRATOR_PASSWORD} \
    -e TULEAP_FPM_SESSION_MODE=redis \
    -e TULEAP_REDIS_SERVER=redis \
    -e TULEAP_REDIS_PASSWORD=${REDIS_PASSWORD} \
    -e TULEAP_EMAIL_TRANSPORT=smtp \
    -e TULEAP_EMAIL_RELAYHOST=your-smtp.example.com:2025 \
    -v /srv/path/to/data:/data
    tuleap/tuleap-community-edition
For future runs you don’t need to pass all the environment variables:
$ docker run -d \
    --restart always \
    --publish 22:22 \
    --publish 80:80 \
    --publish 443:443 \
    --hostname tuleap-ce.example.com \
    -e TULEAP_FPM_SESSION_MODE=redis \
    -e TULEAP_REDIS_SERVER=redis \
    -e TULEAP_EMAIL_TRANSPORT=smtp \
    -e TULEAP_EMAIL_RELAYHOST=your-smtp.example.com:2025 \
    -v /srv/path/to/data:/data
    tuleap/tuleap-community-edition
Tuleap Enterprise
Attention
This image is only available to Tuleap Enterprise subscribers. Please contact your support team to get your access to the private registry.
You first need to authenticate towards Tuleap’s registry:
$ docker login docker.tuleap.org
You must specify the Tuleap tag you want to run (there is no :latest to avoid mistakes). Please note that you can either:
Use the exact Tuleap Enterprise Edition tag like
11.13-4Or just run the head tag of the release like
11.13
$ docker run -ti \
    -e TULEAP_FQDN=tuleap.example.com \
    -e DB_HOST=db-tuleap.example.com \
    -e DB_ADMIN_USER="root" \
    -e DB_ADMIN_PASSWORD="a fine password" \
    -v /srv/path/to/data:/data
    docker.tuleap.org/tuleap-enterprise-edition:11.13-3
The next runs won’t need the environment variable so you can restart with:
$ docker run -d \
    -v /srv/path/to/data:/data
    docker.tuleap.org/tuleap-enterprise-edition:11.13-3