Sign inSign up

epicmorg/testrail

By epicmorg

•Updated about 2 hours ago

TestRail 5.4-9.1 on Apache2 + PHP-FPM (ionCube), with AD / LDAP auth variants

Image
1

50K+

epicmorg/testrail repository overview

⁠epicmorg/testrail

Self-hosted TestRail⁠ images, generated by bin/ansible (role gurock.testrail) - one directory per TestRail release.

⁠What's inside

  • based on epicmorg/apache2:php<ver>⁠: Apache2 + PHP-FPM over a unix socket, run by supervisor; ionCube loader from epicmorg/php;

  • the PHP line follows what each TestRail release supports:

    TestRailPHPCassandra PHP extension
    5.4.1 ... 5.6.07.0-
    5.7.0 ... 6.3.17.1-
    6.4.0 ... 6.7.27.2-
    7.0.0 ... 7.5.37.4Gurock's prebuilt DataStax driver
    8.0.0 ... 9.1.08.1PHP 8 fork of the DataStax driver, built from source
  • supervisor programs: php-fpm, apache2, testrail-task (background task every TR_DEFAULT_TASK_EXECUTION seconds, default 60);

  • on every start the TestRail code is re-extracted into /var/www/testrail;

  • ports 80 / 443.

Tags per release:

  • <version> - TestRail;
  • auth-ad-<version> / auth-ldap-<version> - plus the Active Directory / LDAP authentication script and the PHP ldap extension (own OpenLDAP client built against PHP's OpenSSL). Configure the script and mount it as /var/www/testrail/custom/auth/auth.php.

TestRail 7.0+ needs a Cassandra server - e.g. epicmorg/cassandra:3.11⁠. Each version directory has its own README with the exact contents.

⁠Tags

DirectoryTags
5.4.1.3669⁠5.4.1.3669, auth-ad-5.4.1.3669, auth-ldap-5.4.1.3669
5.5.0.3727⁠5.5.0.3727, auth-ad-5.5.0.3727, auth-ldap-5.5.0.3727
5.5.0.3731⁠5.5.0.3731, auth-ad-5.5.0.3731, auth-ldap-5.5.0.3731
5.5.0.3735⁠5.5.0.3735, auth-ad-5.5.0.3735, auth-ldap-5.5.0.3735
5.5.1.3746⁠5.5.1.3746, auth-ad-5.5.1.3746, auth-ldap-5.5.1.3746
5.6.0.3853⁠5.6.0.3853, auth-ad-5.6.0.3853, auth-ldap-5.6.0.3853
5.6.0.3856⁠5.6.0.3856, auth-ad-5.6.0.3856, auth-ldap-5.6.0.3856
5.6.0.3861⁠5.6.0.3861, auth-ad-5.6.0.3861, auth-ldap-5.6.0.3861
5.6.0.3862⁠5.6.0.3862, auth-ad-5.6.0.3862, auth-ldap-5.6.0.3862
5.6.0.3865⁠5.6.0.3865, auth-ad-5.6.0.3865, auth-ldap-5.6.0.3865
5.7.0.3938⁠5.7.0.3938, auth-ad-5.7.0.3938, auth-ldap-5.7.0.3938
5.7.0.3942⁠5.7.0.3942, auth-ad-5.7.0.3942, auth-ldap-5.7.0.3942
5.7.0.3951⁠5.7.0.3951, auth-ad-5.7.0.3951, auth-ldap-5.7.0.3951
5.7.1.4026⁠5.7.1.4026, auth-ad-5.7.1.4026, auth-ldap-5.7.1.4026
5.7.1.4028⁠5.7.1.4028, auth-ad-5.7.1.4028, auth-ldap-5.7.1.4028
6.0.0.4140⁠6.0.0.4140, auth-ad-6.0.0.4140, auth-ldap-6.0.0.4140
6.0.1.4163⁠6.0.1.4163, auth-ad-6.0.1.4163, auth-ldap-6.0.1.4163
6.1.0.4367⁠6.1.0.4367, auth-ad-6.1.0.4367, auth-ldap-6.1.0.4367
6.1.0.4369⁠6.1.0.4369, auth-ad-6.1.0.4369, auth-ldap-6.1.0.4369
6.1.1.1020⁠6.1.1.1020, auth-ad-6.1.1.1020, auth-ldap-6.1.1.1020
6.1.1.1021⁠6.1.1.1021, auth-ad-6.1.1.1021, auth-ldap-6.1.1.1021
6.2.0.1085⁠6.2.0.1085, auth-ad-6.2.0.1085, auth-ldap-6.2.0.1085
6.2.1.1003⁠6.2.1.1003, auth-ad-6.2.1.1003, auth-ldap-6.2.1.1003
6.2.1.1005⁠6.2.1.1005, auth-ad-6.2.1.1005, auth-ldap-6.2.1.1005
6.2.2.1107⁠6.2.2.1107, auth-ad-6.2.2.1107, auth-ldap-6.2.2.1107
6.2.3.1114⁠6.2.3.1114, auth-ad-6.2.3.1114, auth-ldap-6.2.3.1114
6.3.0.1120⁠6.3.0.1120, auth-ad-6.3.0.1120, auth-ldap-6.3.0.1120
6.3.1.1004⁠6.3.1.1004, auth-ad-6.3.1.1004, auth-ldap-6.3.1.1004
6.3.1.1006⁠6.3.1.1006, auth-ad-6.3.1.1006, auth-ldap-6.3.1.1006
6.4.0.1284⁠6.4.0.1284, auth-ad-6.4.0.1284, auth-ldap-6.4.0.1284
6.4.0.1293⁠6.4.0.1293, auth-ad-6.4.0.1293, auth-ldap-6.4.0.1293
6.5.0.1298⁠6.5.0.1298, auth-ad-6.5.0.1298, auth-ldap-6.5.0.1298
6.5.1.1002⁠6.5.1.1002, auth-ad-6.5.1.1002, auth-ldap-6.5.1.1002
6.5.3.1001⁠6.5.3.1001, auth-ad-6.5.3.1001, auth-ldap-6.5.3.1001
6.5.4.1002⁠6.5.4.1002, auth-ad-6.5.4.1002, auth-ldap-6.5.4.1002
6.5.4.1007⁠6.5.4.1007, auth-ad-6.5.4.1007, auth-ldap-6.5.4.1007
6.5.5.1009⁠6.5.5.1009, auth-ad-6.5.5.1009, auth-ldap-6.5.5.1009
6.5.6.1014⁠6.5.6.1014, auth-ad-6.5.6.1014, auth-ldap-6.5.6.1014
6.5.7.1000⁠6.5.7.1000, auth-ad-6.5.7.1000, auth-ldap-6.5.7.1000
6.6.0.1156⁠6.6.0.1156, auth-ad-6.6.0.1156, auth-ldap-6.6.0.1156
6.6.1.1166⁠6.6.1.1166, auth-ad-6.6.1.1166, auth-ldap-6.6.1.1166
6.7.1.1020⁠6.7.1.1020, auth-ad-6.7.1.1020, auth-ldap-6.7.1.1020
6.7.2.1037⁠6.7.2.1037, auth-ad-6.7.2.1037, auth-ldap-6.7.2.1037
6.7.2.1043⁠6.7.2.1043, auth-ad-6.7.2.1043, auth-ldap-6.7.2.1043
7.0.0.1057⁠7.0.0.1057, auth-ad-7.0.0.1057, auth-ldap-7.0.0.1057
7.0.1.1002⁠7.0.1.1002, auth-ad-7.0.1.1002, auth-ldap-7.0.1.1002
7.0.1.1013⁠7.0.1.1013, auth-ad-7.0.1.1013, auth-ldap-7.0.1.1013
7.0.2.1014⁠7.0.2.1014, auth-ad-7.0.2.1014, auth-ldap-7.0.2.1014
7.0.2.1015⁠7.0.2.1015, auth-ad-7.0.2.1015, auth-ldap-7.0.2.1015
7.0.2.1016⁠7.0.2.1016, auth-ad-7.0.2.1016, auth-ldap-7.0.2.1016
7.4.1.8079⁠7.4.1.8079, auth-ad-7.4.1.8079, auth-ldap-7.4.1.8079
7.4.1.8091⁠7.4.1.8091, auth-ad-7.4.1.8091, auth-ldap-7.4.1.8091
7.4.1.8092⁠7.4.1.8092, auth-ad-7.4.1.8092, auth-ldap-7.4.1.8092
7.5.1.7010⁠7.5.1.7010, auth-ad-7.5.1.7010, auth-ldap-7.5.1.7010
7.5.1.7012⁠7.5.1.7012, auth-ad-7.5.1.7012, auth-ldap-7.5.1.7012
7.5.1.7013⁠7.5.1.7013, auth-ad-7.5.1.7013, auth-ldap-7.5.1.7013
7.5.2.1002⁠7.5.2.1002, auth-ad-7.5.2.1002, auth-ldap-7.5.2.1002
7.5.3.1000⁠7.5.3.1000, auth-ad-7.5.3.1000, auth-ldap-7.5.3.1000
8.0.0.1089⁠8.0.0.1089, auth-ad-8.0.0.1089, auth-ldap-8.0.0.1089
8.0.1.1029⁠8.0.1.1029, auth-ad-8.0.1.1029, auth-ldap-8.0.1.1029
8.0.4.7036⁠8.0.4.7036, auth-ad-8.0.4.7036, auth-ldap-8.0.4.7036
8.0.6.1019⁠8.0.6.1019, auth-ad-8.0.6.1019, auth-ldap-8.0.6.1019
8.1.0.6165⁠8.1.0.6165, auth-ad-8.1.0.6165, auth-ldap-8.1.0.6165
8.1.0.6186⁠8.1.0.6186, auth-ad-8.1.0.6186, auth-ldap-8.1.0.6186
9.0.0.1057⁠9.0.0.1057, auth-ad-9.0.0.1057, auth-ldap-9.0.0.1057
9.0.0.1091⁠9.0.0.1091, auth-ad-9.0.0.1091, auth-ldap-9.0.0.1091
9.1.0.1025⁠9.1.0.1025, auth-ad-9.1.0.1025, auth-ldap-9.1.0.1025

Every tag is pushed to docker.io, quay.io and ghcr.io (epicmorg/testrail:<tag> on each) - same digest everywhere.

⁠Usage

services:
  testrail:
    image: epicmorg/testrail:9.1.0.1025
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./custom/auth/auth.php:/var/www/testrail/custom/auth/auth.php:ro   # auth-* tags only
      - ./attachments:/opt/testrail/attachments
      - ./audit:/opt/testrail/audit
      - ./logs:/opt/testrail/logs
      - ./reports:/opt/testrail/reports
      - ./config:/var/www/testrail/config
    depends_on:
      - mysql
      - rabbitmq
      - cassandra
    environment:
      - TR_DEFAULT_TASK_EXECUTION=60

  mysql:
    image: mysql:8
    restart: always
    volumes:
      - ./mysql/my.cnf:/etc/mysql/my.cnf
      - ./mysql/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password

  cassandra:
    image: epicmorg/cassandra:3.11
    restart: always
    ulimits:
      memlock: -1
      nproc: 1048575
      nofile: 100000
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./cassandra:/var/lib/cassandra

  rabbitmq:
    image: rabbitmq:3-management
    restart: always
    environment:
      - RABBITMQ_DEFAULT_USER=testrail
      - RABBITMQ_DEFAULT_PASS=testrail
    volumes:
      - ./rabbitmq:/var/lib/rabbitmq

Installation and database setup: see the TestRail documentation⁠ for the server edition.

Tag summary

Content type

Image

Digest

sha256:60824a013…

Size

1 GB

Last updated

about 2 hours ago

docker pull epicmorg/testrail:auth-ldap-5.4.1.3668