Docker Standalone

For anything but tests, you should have a dedicated MySQL (version 8.0) and Redis (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_FQDN environment variable

  • The Database server name as TULEAP_SYS_DBHOST environment variable. See database installation for specific configuration.

  • The database admin user (root or equivalent) as DB_ADMIN_USER environment variable

  • The database admin user password as DB_ADMIN_PASSWORD environment variable

  • The database application user (typically tuleapadm) password as TULEAP_SYS_DBPASSWD environment variable

  • The Tuleap admin user password as SITE_ADMINISTRATOR_PASSWORD environment 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:

  • 80 TCP http traffic, automatically redirected to 443

  • 443 TCP https traffic

  • 22 TCP 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-4

  • Or 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