diff --git a/.github/workflows/epicmorg.base.images.web.yml b/.github/workflows/epicmorg.base.images.web.yml index ef302c039..4d55ad87c 100644 --- a/.github/workflows/epicmorg.base.images.web.yml +++ b/.github/workflows/epicmorg.base.images.web.yml @@ -21,8 +21,14 @@ jobs: - name: Test Make run: make - - name: "Build and Deploy PHP Latest Image:" - run: cd linux/ecosystem/php/latest && pwd && make build && make deploy +# - name: "Build and Deploy PHP Latest Image:" +# run: cd linux/ecosystem/php/latest && pwd && make build && make deploy + + - name: "Build and Deploy PHP 7.0 Image:" + run: cd linux/ecosystem/php/php7.0 && pwd && make build && make deploy + + - name: "Build and Deploy PHP 7.1 Image:" + run: cd linux/ecosystem/php/php7.1 && pwd && make build && make deploy - name: "Build and Deploy PHP 7.2 Image:" run: cd linux/ecosystem/php/php7.2 && pwd && make build && make deploy @@ -39,6 +45,12 @@ jobs: - name: "Build and Deploy PHP 8.1 Image:" run: cd linux/ecosystem/php/php8.1 && pwd && make build && make deploy + - name: "Build and Deploy PHP 8.2 Image:" + run: cd linux/ecosystem/php/php8.2 && pwd && make build && make deploy + + - name: "Build and Deploy PHP 8.3 Image:" + run: cd linux/ecosystem/php/php8.3 && pwd && make build && make deploy + ################################################################################## build-apache2-images: @@ -54,8 +66,14 @@ jobs: - name: Test Make run: make - - name: "Build and Deploy Apache 2 Latest Image:" - run: cd linux/ecosystem/apache2/latest && pwd && make build && make deploy +# - name: "Build and Deploy Apache 2 Latest Image:" +# run: cd linux/ecosystem/apache2/latest && pwd && make build && make deploy + + - name: "Build and Deploy Apache 2 + PHP 7.0 Image:" + run: cd linux/ecosystem/apache2/php7.0 && pwd && make build && make deploy + + - name: "Build and Deploy Apache 2 + PHP 7.1 Image:" + run: cd linux/ecosystem/apache2/php7.1 && pwd && make build && make deploy - name: "Build and Deploy Apache 2 + PHP 7.2 Image:" run: cd linux/ecosystem/apache2/php7.2 && pwd && make build && make deploy @@ -72,6 +90,12 @@ jobs: - name: "Build and Deploy Apache 2 + PHP 8.1 Image:" run: cd linux/ecosystem/apache2/php8.1 && pwd && make build && make deploy + - name: "Build and Deploy Apache 2 + PHP 8.2 Image:" + run: cd linux/ecosystem/apache2/php8.2 && pwd && make build && make deploy + + - name: "Build and Deploy Apache 2 + PHP 8.3 Image:" + run: cd linux/ecosystem/apache2/php8.3 && pwd && make build && make deploy + ################################################################################## build-nginx-images: diff --git a/.gitignore b/.gitignore index d59733991..0feaa560b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ # Temp make file for local builds and debug Makefile.temp +# debug ansible file +output.log diff --git a/CHANGELOG.md b/CHANGELOG.md index fc07ef479..f572abf27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ * added `jdk17` support. * added `freegpt` webui by [Em1tSan/freegpt-webui-ru](https://github.com/Em1tSan/freegpt-webui-ru). * updated `atlassian` images + * updated `testrail` images + * added reworked `php5.5` iamge. + * added reworked `php7.0` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * added reworked `php7.1` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * updated reworked `php7.2` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * updated reworked `php7.3` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * updated reworked `php7.4` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * updated reworked `php8.0` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * updated reworked `php8.1` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * added reworked `php8.2` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. + * added reworked `php8.3` + `apache2` images with `cassandra`, `ioncube` and `bolt` support. * `may-june` * `base` images improved * `nginx` images updated diff --git a/Makefile b/Makefile index 9e4b8903a..d5d4f07fb 100644 --- a/Makefile +++ b/Makefile @@ -351,20 +351,26 @@ ecosystem-debian-bookworm-images: cd `pwd`/linux/ecosystem/epicmorg/debian/12-bookworm/jdk18 && pwd && make build && make deploy ecosystem-php-images: - cd `pwd`/linux/ecosystem/php/latest && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/php/php7.0 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/php/php7.1 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/php/php7.2 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/php/php7.3 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/php/php7.4 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/php/php8.0 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/php/php8.1 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/php/php8.2 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/php/php8.3 && pwd && make build && make deploy ecosystem-apache2-images: - cd `pwd`/linux/ecosystem/apache2/latest && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/apache2/php7.0 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/apache2/php7.1 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/apache2/php7.2 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/apache2/php7.3 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/apache2/php7.4 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/apache2/php8.0 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/apache2/php8.1 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/apache2/php8.2 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/apache2/php8.3 && pwd && make build && make deploy ecosystem-testrail-images: cd `pwd`/linux/ecosystem/cassandra/3.11 && pwd && make build && make deploy diff --git a/bin/ansible/ansible.cfg b/bin/ansible/ansible.cfg index af52409b6..6389745df 100644 --- a/bin/ansible/ansible.cfg +++ b/bin/ansible/ansible.cfg @@ -1,6 +1,6 @@ [defaults] ansible_python_interpreter = /usr/bin/python3 -#inventory = inventory/hosts +inventory = inventory/hosts any_errors_fatal = true display_skipped_hosts = false deprecation_warnings = false diff --git a/bin/ansible/playbook.yml b/bin/ansible/playbook.yml index 01c20395f..1dd2a3837 100644 --- a/bin/ansible/playbook.yml +++ b/bin/ansible/playbook.yml @@ -1,11 +1,13 @@ - name: Clear log file before write new stdout to it at this session hosts: localhost + connection: local tasks: - name: echo -n > output.log shell: echo -n > output.log - name: Lets Go! hosts: localhost + connection: local tasks: - name: Create directory for ansible custom facts debug: @@ -13,6 +15,8 @@ - name: Generate Jira images hosts: localhost + connection: local gather_facts: false roles: - - atlassian.jira.9 +# - atlassian.jira + - gurock.testrail \ No newline at end of file diff --git a/bin/ansible/roles/atlassian.jira.9/files/Dockerfile b/bin/ansible/roles/atlassian.jira/files/Dockerfile similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/files/Dockerfile rename to bin/ansible/roles/atlassian.jira/files/Dockerfile diff --git a/bin/ansible/roles/atlassian.jira.9/files/Dockerfile.jdk11 b/bin/ansible/roles/atlassian.jira/files/Dockerfile.jdk11 similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/files/Dockerfile.jdk11 rename to bin/ansible/roles/atlassian.jira/files/Dockerfile.jdk11 diff --git a/bin/ansible/roles/atlassian.jira.9/files/Dockerfile.jdk17 b/bin/ansible/roles/atlassian.jira/files/Dockerfile.jdk17 similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/files/Dockerfile.jdk17 rename to bin/ansible/roles/atlassian.jira/files/Dockerfile.jdk17 diff --git a/bin/ansible/roles/atlassian.jira.9/files/Makefile b/bin/ansible/roles/atlassian.jira/files/Makefile similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/files/Makefile rename to bin/ansible/roles/atlassian.jira/files/Makefile diff --git a/bin/ansible/roles/atlassian.jira.9/files/docker-compose.yml b/bin/ansible/roles/atlassian.jira/files/docker-compose.yml similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/files/docker-compose.yml rename to bin/ansible/roles/atlassian.jira/files/docker-compose.yml diff --git a/bin/ansible/roles/atlassian.jira.9/files/entrypoint.sh b/bin/ansible/roles/atlassian.jira/files/entrypoint.sh old mode 100644 new mode 100755 similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/files/entrypoint.sh rename to bin/ansible/roles/atlassian.jira/files/entrypoint.sh diff --git a/bin/ansible/roles/atlassian.jira.9/tasks/main.yml b/bin/ansible/roles/atlassian.jira/tasks/atlassian.jira.9.yml similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/tasks/main.yml rename to bin/ansible/roles/atlassian.jira/tasks/atlassian.jira.9.yml diff --git a/bin/ansible/roles/atlassian.jira/tasks/main.yml b/bin/ansible/roles/atlassian.jira/tasks/main.yml new file mode 100644 index 000000000..c72837bd1 --- /dev/null +++ b/bin/ansible/roles/atlassian.jira/tasks/main.yml @@ -0,0 +1,2 @@ +- name: "Generate images for Jira 9 (jdk8, jdk11, jdk17)" + import_tasks: atlassian.jira.9.yml diff --git a/bin/ansible/roles/atlassian.jira.9/templates/template.env.j2 b/bin/ansible/roles/atlassian.jira/templates/template.env.j2 similarity index 100% rename from bin/ansible/roles/atlassian.jira.9/templates/template.env.j2 rename to bin/ansible/roles/atlassian.jira/templates/template.env.j2 diff --git a/bin/ansible/roles/atlassian.jira.9/vars/main.yml b/bin/ansible/roles/atlassian.jira/vars/main.yml similarity index 75% rename from bin/ansible/roles/atlassian.jira.9/vars/main.yml rename to bin/ansible/roles/atlassian.jira/vars/main.yml index 435c41510..481bb4446 100644 --- a/bin/ansible/roles/atlassian.jira.9/vars/main.yml +++ b/bin/ansible/roles/atlassian.jira/vars/main.yml @@ -1,4 +1,3 @@ # Defaults versions_file: "roles/common/files/versions/jira/9.txt" target_directory: "/opt/tmp/jira/" -template_file: "template.env.j2" diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php55.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php55.txt new file mode 100644 index 000000000..a9f2729dd --- /dev/null +++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php55.txt @@ -0,0 +1,54 @@ +3.0.0.3015 +3.0.1.3030 +3.0.2.3070 +3.0.3.3084 +3.0.4.3098 +3.1.0.3127 +3.1.0.3127 +3.1.1.3130 +3.1.1.3130 +3.1.2.3142 +3.1.2.3142 +3.1.3.3146 +3.1.3.3146 +4.0.0.3264 +4.0.0.3264 +4.0.1.3267 +4.0.1.3267 +4.0.2.3269 +4.0.2.3269 +4.0.3.3270 +4.0.3.3270 +4.0.4.3277 +4.0.4.3277 +4.1.0.3291 +4.1.0.3291 +4.1.0.3294 +4.1.0.3294 +4.2.0.3312 +4.2.0.3312 +4.2.0.3315 +4.2.0.3315 +4.2.1.3321 +4.2.1.3321 +5.0.0.3357 +5.0.0.3357 +5.0.0.3363 +5.0.0.3363 +5.0.0.3364 +5.0.0.3364 +5.0.0.3365 +5.0.0.3365 +5.0.0.3367 +5.0.0.3367 +5.0.1.3370 +5.0.1.3371 +5.0.2.3372 +5.1.0.3412 +5.1.0.3413 +5.2.0.3451 +5.2.0.3452 +5.2.1.3472 +5.3.0.3603 +5.4.0.3659 +5.4.1.3668 diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php70.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php70.txt new file mode 100644 index 000000000..ee17ca76d --- /dev/null +++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php70.txt @@ -0,0 +1,10 @@ +5.4.1.3669 +5.5.0.3727 +5.5.0.3731 +5.5.0.3735 +5.5.1.3746 +5.6.0.3853 +5.6.0.3856 +5.6.0.3861 +5.6.0.3862 +5.6.0.3865 diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php71.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php71.txt new file mode 100644 index 000000000..ae2090239 --- /dev/null +++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php71.txt @@ -0,0 +1,21 @@ +5.7.0.3938 +5.7.0.3942 +5.7.0.3951 +5.7.1.4026 +5.7.1.4028 +6.0.0.4140 +6.0.1.4163 +6.1.0.4367 +6.1.0.4369 +6.1.1.1020 +6.1.1.1021 +6.2.0.1085 +6.2.1.1003 +6.2.1.1005 +6.2.2.1107 +6.2.3.1114 +6.3.0.1120 +6.3.1.1004 +6.3.1.1006 +6.4.0.1284 +6.4.0.1293 diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php72.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php72.txt new file mode 100644 index 000000000..7ef16afe5 --- /dev/null +++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php72.txt @@ -0,0 +1,13 @@ +6.5.0.1298 +6.5.1.1002 +6.5.3.1001 +6.5.4.1002 +6.5.4.1007 +6.5.5.1009 +6.5.6.1014 +6.5.7.1000 +6.6.0.1156 +6.6.1.1166 +6.7.1.1020 +6.7.2.1037 +6.7.2.1043 diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php74.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php74.txt new file mode 100644 index 000000000..c4389ff2e --- /dev/null +++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php74.txt @@ -0,0 +1,14 @@ +7.0.0.1057 +7.0.1.1002 +7.0.1.1013 +7.0.2.1014 +7.0.2.1015 +7.0.2.1016 +7.4.1.8079 +7.4.1.8091 +7.4.1.8092 +7.5.1.7010 +7.5.1.7012 +7.5.1.7013 +7.5.2.1002 +7.5.3.1000 diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt new file mode 100644 index 000000000..5291aed53 --- /dev/null +++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt @@ -0,0 +1,2 @@ +8.0.0.1089 +8.0.1.1029 diff --git a/linux/ecosystem/apache2/latest/Makefile b/bin/ansible/roles/gurock.testrail/files/php70/ad/Makefile similarity index 100% rename from linux/ecosystem/apache2/latest/Makefile rename to bin/ansible/roles/gurock.testrail/files/php70/ad/Makefile diff --git a/linux/ecosystem/php/latest/Makefile b/bin/ansible/roles/gurock.testrail/files/php70/ldap/Makefile similarity index 100% rename from linux/ecosystem/php/latest/Makefile rename to bin/ansible/roles/gurock.testrail/files/php70/ldap/Makefile diff --git a/linux/ecosystem/testrail/latest/ad/Makefile b/bin/ansible/roles/gurock.testrail/files/php70/main/Makefile similarity index 100% rename from linux/ecosystem/testrail/latest/ad/Makefile rename to bin/ansible/roles/gurock.testrail/files/php70/main/Makefile diff --git a/linux/ecosystem/testrail/latest/main/apache_testrail.conf b/bin/ansible/roles/gurock.testrail/files/php70/main/apache_testrail.conf similarity index 100% rename from linux/ecosystem/testrail/latest/main/apache_testrail.conf rename to bin/ansible/roles/gurock.testrail/files/php70/main/apache_testrail.conf diff --git a/linux/ecosystem/testrail/latest/ldap/Makefile b/bin/ansible/roles/gurock.testrail/files/php71/ad/Makefile similarity index 100% rename from linux/ecosystem/testrail/latest/ldap/Makefile rename to bin/ansible/roles/gurock.testrail/files/php71/ad/Makefile diff --git a/linux/ecosystem/testrail/latest/main/Makefile b/bin/ansible/roles/gurock.testrail/files/php71/ldap/Makefile similarity index 100% rename from linux/ecosystem/testrail/latest/main/Makefile rename to bin/ansible/roles/gurock.testrail/files/php71/ldap/Makefile diff --git a/bin/ansible/roles/gurock.testrail/files/php71/main/Makefile b/bin/ansible/roles/gurock.testrail/files/php71/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php71/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php71/main/apache_testrail.conf b/bin/ansible/roles/gurock.testrail/files/php71/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php71/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/files/php72/ad/Makefile b/bin/ansible/roles/gurock.testrail/files/php72/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php72/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php72/ldap/Makefile b/bin/ansible/roles/gurock.testrail/files/php72/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php72/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php72/main/Makefile b/bin/ansible/roles/gurock.testrail/files/php72/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php72/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php72/main/apache_testrail.conf b/bin/ansible/roles/gurock.testrail/files/php72/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php72/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/files/php74/ad/Makefile b/bin/ansible/roles/gurock.testrail/files/php74/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php74/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php74/ldap/Makefile b/bin/ansible/roles/gurock.testrail/files/php74/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php74/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php74/main/Makefile b/bin/ansible/roles/gurock.testrail/files/php74/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php74/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php74/main/apache_testrail.conf b/bin/ansible/roles/gurock.testrail/files/php74/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php74/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/files/php81/ad/Makefile b/bin/ansible/roles/gurock.testrail/files/php81/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php81/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php81/ldap/Makefile b/bin/ansible/roles/gurock.testrail/files/php81/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php81/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php81/main/Makefile b/bin/ansible/roles/gurock.testrail/files/php81/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php81/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/bin/ansible/roles/gurock.testrail/files/php81/main/apache_testrail.conf b/bin/ansible/roles/gurock.testrail/files/php81/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/files/php81/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/tasks/main.yml b/bin/ansible/roles/gurock.testrail/tasks/main.yml new file mode 100644 index 000000000..48d4f683b --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/tasks/main.yml @@ -0,0 +1,18 @@ +#- name: "Generate images for Testrail (PHP 5.5)" +# import_tasks: testrail.php55.yml + +- name: "Generate images for Testrail (PHP 7.0)" + import_tasks: testrail.php70.yml + +- name: "Generate images for Testrail (PHP 7.1)" + import_tasks: testrail.php71.yml + +- name: "Generate images for Testrail (PHP 7.2)" + import_tasks: testrail.php72.yml + +- name: "Generate images for Testrail (PHP 7.4)" + import_tasks: testrail.php74.yml + +- name: "Generate images for Testrail (PHP 8.1)" + import_tasks: testrail.php81.yml + \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/tasks/testrail.php70.yml b/bin/ansible/roles/gurock.testrail/tasks/testrail.php70.yml new file mode 100644 index 000000000..fda391a03 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/tasks/testrail.php70.yml @@ -0,0 +1,100 @@ +- name: Read versions from file testrail.php70.txt + slurp: + src: "roles/common/files/versions/testrail/testrail.php70.txt" + register: version_output + +- name: Set version variable + set_fact: + testrail_versions: "{{ version_output['content'] | b64decode | trim | split('\n') }}" + +- name: Create directories for Testrail versions with php70 + file: + path: "{{ target_directory }}/{{ item }}" + state: directory + mode: '0755' + with_items: "{{ testrail_versions }}" + +- name: Copy all files from 'files' directory to each version directory + copy: + src: "php70/" + dest: "{{ target_directory }}/{{ item }}/" + with_items: "{{ testrail_versions }}" +# no_log: true + +- name: Copy template with link to each version directory + template: + src: "template.env.php70.j2" + dest: "{{ target_directory }}/{{ item }}/main/.env" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-compose.yml to each version directory + template: + src: "php70/main/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-entrypoint.sh to each version directory + template: + src: "php70/main/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy main template Dockerfile to each version directory + template: + src: "php70/main/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/main/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy main template README.md to each version directory + template: + src: "php70/main/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/main/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-compose.yml to each version directory + template: + src: "php70/ad/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-entrypoint.sh to each version directory + template: + src: "php70/ad/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template Dockerfile to each version directory + template: + src: "php70/ad/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ad/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template README.md to each version directory + template: + src: "php70/ad/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ad/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-compose.yml to each version directory + template: + src: "php70/ldap/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-entrypoint.sh to each version directory + template: + src: "php70/ldap/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template Dockerfile to each version directory + template: + src: "php70/ldap/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template README.md to each version directory + template: + src: "php70/ldap/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/README.md" + with_items: "{{ testrail_versions }}" diff --git a/bin/ansible/roles/gurock.testrail/tasks/testrail.php71.yml b/bin/ansible/roles/gurock.testrail/tasks/testrail.php71.yml new file mode 100644 index 000000000..5501afef6 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/tasks/testrail.php71.yml @@ -0,0 +1,100 @@ +- name: Read versions from file testrail.php71.txt + slurp: + src: "roles/common/files/versions/testrail/testrail.php71.txt" + register: version_output + +- name: Set version variable + set_fact: + testrail_versions: "{{ version_output['content'] | b64decode | trim | split('\n') }}" + +- name: Create directories for Testrail versions with php71 + file: + path: "{{ target_directory }}/{{ item }}" + state: directory + mode: '0755' + with_items: "{{ testrail_versions }}" + +- name: Copy all files from 'files' directory to each version directory + copy: + src: "php71/" + dest: "{{ target_directory }}/{{ item }}/" + with_items: "{{ testrail_versions }}" +# no_log: true + +- name: Copy template with link to each version directory + template: + src: "template.env.php71.j2" + dest: "{{ target_directory }}/{{ item }}/main/.env" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-compose.yml to each version directory + template: + src: "php71/main/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-entrypoint.sh to each version directory + template: + src: "php71/main/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy main template Dockerfile to each version directory + template: + src: "php71/main/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/main/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy main template README.md to each version directory + template: + src: "php71/main/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/main/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-compose.yml to each version directory + template: + src: "php71/ad/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-entrypoint.sh to each version directory + template: + src: "php71/ad/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template Dockerfile to each version directory + template: + src: "php71/ad/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ad/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template README.md to each version directory + template: + src: "php71/ad/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ad/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-compose.yml to each version directory + template: + src: "php71/ldap/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-entrypoint.sh to each version directory + template: + src: "php71/ldap/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template Dockerfile to each version directory + template: + src: "php71/ldap/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template README.md to each version directory + template: + src: "php71/ldap/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/README.md" + with_items: "{{ testrail_versions }}" diff --git a/bin/ansible/roles/gurock.testrail/tasks/testrail.php72.yml b/bin/ansible/roles/gurock.testrail/tasks/testrail.php72.yml new file mode 100644 index 000000000..02744a9ea --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/tasks/testrail.php72.yml @@ -0,0 +1,100 @@ +- name: Read versions from file testrail.php72.txt + slurp: + src: "roles/common/files/versions/testrail/testrail.php72.txt" + register: version_output + +- name: Set version variable + set_fact: + testrail_versions: "{{ version_output['content'] | b64decode | trim | split('\n') }}" + +- name: Create directories for Testrail versions with php72 + file: + path: "{{ target_directory }}/{{ item }}" + state: directory + mode: '0755' + with_items: "{{ testrail_versions }}" + +- name: Copy all files from 'files' directory to each version directory + copy: + src: "php72/" + dest: "{{ target_directory }}/{{ item }}/" + with_items: "{{ testrail_versions }}" +# no_log: true + +- name: Copy template with link to each version directory + template: + src: "template.env.php72.j2" + dest: "{{ target_directory }}/{{ item }}/main/.env" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-compose.yml to each version directory + template: + src: "php72/main/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-entrypoint.sh to each version directory + template: + src: "php72/main/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy main template Dockerfile to each version directory + template: + src: "php72/main/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/main/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy main template README.md to each version directory + template: + src: "php72/main/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/main/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-compose.yml to each version directory + template: + src: "php72/ad/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-entrypoint.sh to each version directory + template: + src: "php72/ad/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template Dockerfile to each version directory + template: + src: "php72/ad/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ad/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template README.md to each version directory + template: + src: "php72/ad/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ad/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-compose.yml to each version directory + template: + src: "php72/ldap/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-entrypoint.sh to each version directory + template: + src: "php72/ldap/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template Dockerfile to each version directory + template: + src: "php72/ldap/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template README.md to each version directory + template: + src: "php72/ldap/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/README.md" + with_items: "{{ testrail_versions }}" diff --git a/bin/ansible/roles/gurock.testrail/tasks/testrail.php74.yml b/bin/ansible/roles/gurock.testrail/tasks/testrail.php74.yml new file mode 100644 index 000000000..e9a930e2c --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/tasks/testrail.php74.yml @@ -0,0 +1,100 @@ +- name: Read versions from file testrail.php74.txt + slurp: + src: "roles/common/files/versions/testrail/testrail.php74.txt" + register: version_output + +- name: Set version variable + set_fact: + testrail_versions: "{{ version_output['content'] | b64decode | trim | split('\n') }}" + +- name: Create directories for Testrail versions with php74 + file: + path: "{{ target_directory }}/{{ item }}" + state: directory + mode: '0755' + with_items: "{{ testrail_versions }}" + +- name: Copy all files from 'files' directory to each version directory + copy: + src: "php74/" + dest: "{{ target_directory }}/{{ item }}/" + with_items: "{{ testrail_versions }}" +# no_log: true + +- name: Copy template with link to each version directory + template: + src: "template.env.php72.j2" + dest: "{{ target_directory }}/{{ item }}/main/.env" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-compose.yml to each version directory + template: + src: "php74/main/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-entrypoint.sh to each version directory + template: + src: "php74/main/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy main template Dockerfile to each version directory + template: + src: "php74/main/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/main/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy main template README.md to each version directory + template: + src: "php74/main/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/main/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-compose.yml to each version directory + template: + src: "php74/ad/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-entrypoint.sh to each version directory + template: + src: "php74/ad/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template Dockerfile to each version directory + template: + src: "php74/ad/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ad/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template README.md to each version directory + template: + src: "php74/ad/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ad/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-compose.yml to each version directory + template: + src: "php74/ldap/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-entrypoint.sh to each version directory + template: + src: "php74/ldap/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template Dockerfile to each version directory + template: + src: "php74/ldap/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template README.md to each version directory + template: + src: "php74/ldap/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/README.md" + with_items: "{{ testrail_versions }}" diff --git a/bin/ansible/roles/gurock.testrail/tasks/testrail.php81.yml b/bin/ansible/roles/gurock.testrail/tasks/testrail.php81.yml new file mode 100644 index 000000000..3776b02a2 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/tasks/testrail.php81.yml @@ -0,0 +1,100 @@ +- name: Read versions from file testrail.php81.txt + slurp: + src: "roles/common/files/versions/testrail/testrail.php81.txt" + register: version_output + +- name: Set version variable + set_fact: + testrail_versions: "{{ version_output['content'] | b64decode | trim | split('\n') }}" + +- name: Create directories for Testrail versions with php81 + file: + path: "{{ target_directory }}/{{ item }}" + state: directory + mode: '0755' + with_items: "{{ testrail_versions }}" + +- name: Copy all files from 'files' directory to each version directory + copy: + src: "php81/" + dest: "{{ target_directory }}/{{ item }}/" + with_items: "{{ testrail_versions }}" +# no_log: true + +- name: Copy template with link to each version directory + template: + src: "template.env.php81.j2" + dest: "{{ target_directory }}/{{ item }}/main/.env" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-compose.yml to each version directory + template: + src: "php81/main/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy main template docker-entrypoint.sh to each version directory + template: + src: "php81/main/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/main/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy main template Dockerfile to each version directory + template: + src: "php81/main/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/main/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy main template README.md to each version directory + template: + src: "php81/main/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/main/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-compose.yml to each version directory + template: + src: "php81/ad/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template docker-entrypoint.sh to each version directory + template: + src: "php81/ad/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ad/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template Dockerfile to each version directory + template: + src: "php81/ad/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ad/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy AD template README.md to each version directory + template: + src: "php81/ad/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ad/README.md" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-compose.yml to each version directory + template: + src: "php81/ldap/docker-compose.yml.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-compose.yml" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template docker-entrypoint.sh to each version directory + template: + src: "php81/ldap/docker-entrypoint.sh.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/docker-entrypoint.sh" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template Dockerfile to each version directory + template: + src: "php81/ldap/Dockerfile.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/Dockerfile" + with_items: "{{ testrail_versions }}" + +- name: Copy LDAP template README.md to each version directory + template: + src: "php81/ldap/README.md.j2" + dest: "{{ target_directory }}/{{ item }}/ldap/README.md" + with_items: "{{ testrail_versions }}" diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/ad/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/ad/Dockerfile.j2 new file mode 100644 index 000000000..96952ca89 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ad/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/ad/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/ad/README.md.j2 new file mode 100644 index 000000000..d2ee32ab4 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ad/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/ad/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/ad/docker-compose.yml.j2 new file mode 100644 index 000000000..f810b2fae --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ad/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-{{ item }}" + build: + context: . diff --git a/linux/ecosystem/testrail/latest/ad/docker-entrypoint.sh b/bin/ansible/roles/gurock.testrail/templates/php70/ad/docker-entrypoint.sh.j2 old mode 100755 new mode 100644 similarity index 94% rename from linux/ecosystem/testrail/latest/ad/docker-entrypoint.sh rename to bin/ansible/roles/gurock.testrail/templates/php70/ad/docker-entrypoint.sh.j2 index 2a7954f51..037600aee --- a/linux/ecosystem/testrail/latest/ad/docker-entrypoint.sh +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ad/docker-entrypoint.sh.j2 @@ -1,6 +1,8 @@ #!/bin/bash -echo "[testrail] Starting testrail service" +echo "[testrail] Welcome to Testrail {{item}} with Active Directory plugin" + +echo "[testrail] Starting Testrail service" ################################################################################## diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/ldap/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/Dockerfile.j2 new file mode 100644 index 000000000..dae850eca --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/ldap/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/README.md.j2 new file mode 100644 index 000000000..c16c377f5 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/ldap/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/docker-compose.yml.j2 new file mode 100644 index 000000000..4a9f0534e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-{{ item }}" + build: + context: . diff --git a/linux/ecosystem/testrail/latest/ldap/docker-entrypoint.sh b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/docker-entrypoint.sh.j2 old mode 100755 new mode 100644 similarity index 96% rename from linux/ecosystem/testrail/latest/ldap/docker-entrypoint.sh rename to bin/ansible/roles/gurock.testrail/templates/php70/ldap/docker-entrypoint.sh.j2 index f25d4d764..081b17418 --- a/linux/ecosystem/testrail/latest/ldap/docker-entrypoint.sh +++ b/bin/ansible/roles/gurock.testrail/templates/php70/ldap/docker-entrypoint.sh.j2 @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail {{item}} with LDAP plugin" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/main/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/main/Dockerfile.j2 new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/main/Dockerfile.j2 @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/main/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/main/README.md.j2 new file mode 100644 index 000000000..cd6b6110d --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/main/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php70/main/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php70/main/docker-compose.yml.j2 new file mode 100644 index 000000000..f9d02895e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php70/main/docker-compose.yml.j2 @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:{{ item }}" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/latest/main/docker-entrypoint.sh b/bin/ansible/roles/gurock.testrail/templates/php70/main/docker-entrypoint.sh.j2 old mode 100755 new mode 100644 similarity index 97% rename from linux/ecosystem/testrail/latest/main/docker-entrypoint.sh rename to bin/ansible/roles/gurock.testrail/templates/php70/main/docker-entrypoint.sh.j2 index 17af00304..7003eaf0d --- a/linux/ecosystem/testrail/latest/main/docker-entrypoint.sh +++ b/bin/ansible/roles/gurock.testrail/templates/php70/main/docker-entrypoint.sh.j2 @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail {{item}}" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ad/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ad/Dockerfile.j2 new file mode 100644 index 000000000..96952ca89 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ad/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ad/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ad/README.md.j2 new file mode 100644 index 000000000..4b70bd4da --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ad/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ad/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ad/docker-compose.yml.j2 new file mode 100644 index 000000000..f810b2fae --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ad/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ad/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ad/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..037600aee --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ad/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ldap/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/Dockerfile.j2 new file mode 100644 index 000000000..dae850eca --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ldap/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/README.md.j2 new file mode 100644 index 000000000..4a42d0e2d --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ldap/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/docker-compose.yml.j2 new file mode 100644 index 000000000..4a9f0534e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/ldap/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..081b17418 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/ldap/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/main/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/main/Dockerfile.j2 new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/main/Dockerfile.j2 @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/main/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/main/README.md.j2 new file mode 100644 index 000000000..278f2c9f5 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/main/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/main/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/main/docker-compose.yml.j2 new file mode 100644 index 000000000..f9d02895e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/main/docker-compose.yml.j2 @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:{{ item }}" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/templates/php71/main/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php71/main/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..7003eaf0d --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php71/main/docker-entrypoint.sh.j2 @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}}" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ad/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ad/Dockerfile.j2 new file mode 100644 index 000000000..96952ca89 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ad/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ad/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ad/README.md.j2 new file mode 100644 index 000000000..4f6bf8f8c --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ad/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ad/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ad/docker-compose.yml.j2 new file mode 100644 index 000000000..f810b2fae --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ad/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ad/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ad/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..037600aee --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ad/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ldap/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/Dockerfile.j2 new file mode 100644 index 000000000..dae850eca --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ldap/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/README.md.j2 new file mode 100644 index 000000000..f4ae571ae --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ldap/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/docker-compose.yml.j2 new file mode 100644 index 000000000..4a9f0534e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/ldap/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..081b17418 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/ldap/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/main/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/main/Dockerfile.j2 new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/main/Dockerfile.j2 @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/main/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/main/README.md.j2 new file mode 100644 index 000000000..83e349837 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/main/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/main/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/main/docker-compose.yml.j2 new file mode 100644 index 000000000..f9d02895e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/main/docker-compose.yml.j2 @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:{{ item }}" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/templates/php72/main/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php72/main/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..7003eaf0d --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php72/main/docker-entrypoint.sh.j2 @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}}" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ad/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ad/Dockerfile.j2 new file mode 100644 index 000000000..96952ca89 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ad/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ad/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ad/README.md.j2 new file mode 100644 index 000000000..81fada613 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ad/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ad/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ad/docker-compose.yml.j2 new file mode 100644 index 000000000..f810b2fae --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ad/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ad/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ad/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..037600aee --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ad/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ldap/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/Dockerfile.j2 new file mode 100644 index 000000000..dae850eca --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ldap/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/README.md.j2 new file mode 100644 index 000000000..34afe849e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ldap/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/docker-compose.yml.j2 new file mode 100644 index 000000000..4a9f0534e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/ldap/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..081b17418 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/ldap/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/main/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/main/Dockerfile.j2 new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/main/Dockerfile.j2 @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/main/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/main/README.md.j2 new file mode 100644 index 000000000..1fe01bf7c --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/main/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/main/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/main/docker-compose.yml.j2 new file mode 100644 index 000000000..f9d02895e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/main/docker-compose.yml.j2 @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:{{ item }}" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/templates/php74/main/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php74/main/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..7003eaf0d --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php74/main/docker-entrypoint.sh.j2 @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}}" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ad/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ad/Dockerfile.j2 new file mode 100644 index 000000000..96952ca89 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ad/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ad/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ad/README.md.j2 new file mode 100644 index 000000000..4860e2681 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ad/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ad/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ad/docker-compose.yml.j2 new file mode 100644 index 000000000..f810b2fae --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ad/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ad/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ad/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..037600aee --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ad/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ldap/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/Dockerfile.j2 new file mode 100644 index 000000000..dae850eca --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/Dockerfile.j2 @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:{{ item }} + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ldap/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/README.md.j2 new file mode 100644 index 000000000..64bdb7b25 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ldap/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/docker-compose.yml.j2 new file mode 100644 index 000000000..4a9f0534e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/docker-compose.yml.j2 @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-{{ item }}" + build: + context: . diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/ldap/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..081b17418 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/ldap/docker-entrypoint.sh.j2 @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}} with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/main/Dockerfile.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/main/Dockerfile.j2 new file mode 100644 index 000000000..e67b1ce15 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/main/Dockerfile.j2 @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php8.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/main/README.md.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/main/README.md.j2 new file mode 100644 index 000000000..ef5089f7b --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/main/README.md.j2 @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:{{ item }} +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/main/docker-compose.yml.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/main/docker-compose.yml.j2 new file mode 100644 index 000000000..f9d02895e --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/main/docker-compose.yml.j2 @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:{{ item }}" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/bin/ansible/roles/gurock.testrail/templates/php81/main/docker-entrypoint.sh.j2 b/bin/ansible/roles/gurock.testrail/templates/php81/main/docker-entrypoint.sh.j2 new file mode 100644 index 000000000..7003eaf0d --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/php81/main/docker-entrypoint.sh.j2 @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail {{item}}" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/bin/ansible/roles/gurock.testrail/templates/template.env.php55.j2 b/bin/ansible/roles/gurock.testrail/templates/template.env.php55.j2 new file mode 100644 index 000000000..1561300f7 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/template.env.php55.j2 @@ -0,0 +1,2 @@ +TESTRAIL_VERSION={{ item }} +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion51.zip diff --git a/bin/ansible/roles/gurock.testrail/templates/template.env.php70.j2 b/bin/ansible/roles/gurock.testrail/templates/template.env.php70.j2 new file mode 100644 index 000000000..288c548d9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/template.env.php70.j2 @@ -0,0 +1,2 @@ +TESTRAIL_VERSION={{ item }} +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/bin/ansible/roles/gurock.testrail/templates/template.env.php71.j2 b/bin/ansible/roles/gurock.testrail/templates/template.env.php71.j2 new file mode 100644 index 000000000..288c548d9 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/template.env.php71.j2 @@ -0,0 +1,2 @@ +TESTRAIL_VERSION={{ item }} +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/bin/ansible/roles/gurock.testrail/templates/template.env.php72.j2 b/bin/ansible/roles/gurock.testrail/templates/template.env.php72.j2 new file mode 100644 index 000000000..90df0b5a6 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/template.env.php72.j2 @@ -0,0 +1,2 @@ +TESTRAIL_VERSION={{ item }} +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/bin/ansible/roles/gurock.testrail/templates/template.env.php81.j2 b/bin/ansible/roles/gurock.testrail/templates/template.env.php81.j2 new file mode 100644 index 000000000..9922830c4 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/templates/template.env.php81.j2 @@ -0,0 +1,2 @@ +TESTRAIL_VERSION={{ item }} +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip diff --git a/bin/ansible/roles/gurock.testrail/vars/main.yml b/bin/ansible/roles/gurock.testrail/vars/main.yml new file mode 100644 index 000000000..52c795661 --- /dev/null +++ b/bin/ansible/roles/gurock.testrail/vars/main.yml @@ -0,0 +1,2 @@ +# Defaults +target_directory: "/opt/tmp/testrail/" diff --git a/linux/ecosystem/apache2/php5.5/Dockerfile b/linux/ecosystem/apache2/php5.5/Dockerfile new file mode 100644 index 000000000..80fee1034 --- /dev/null +++ b/linux/ecosystem/apache2/php5.5/Dockerfile @@ -0,0 +1,95 @@ +FROM epicmorg/php:php5.5 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_VER=5.5 +ARG PHP_MODULE_PATH=/usr/local/lib/php/extensions/no-debug-non-zts-20121212 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php5.5 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 \ + libmemcached-dev && \ + a2enmod \ + php5.5 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + slotmem_shm \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# Apache2 Fixes +################################################################## +RUN rm -fv /etc/apache2/sites-enabled/000-default.conf +RUN rm -fv /etc/apache2/apache2.conf +COPY etc/apache2/sites-enabled/localhost.conf /etc/apache2/sites-enabled/localhost.conf +COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh +RUN chown -Rf www-data:www-data /var/www + +#Final config +VOLUME ["/var/www"] +WORKDIR /var/www/ +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/apache2/php5.5/Makefile b/linux/ecosystem/apache2/php5.5/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/apache2/php5.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/latest/README.md b/linux/ecosystem/apache2/php5.5/README.md similarity index 100% rename from linux/ecosystem/apache2/latest/README.md rename to linux/ecosystem/apache2/php5.5/README.md diff --git a/linux/ecosystem/apache2/latest/docker-compose.yml b/linux/ecosystem/apache2/php5.5/docker-compose.yml similarity index 61% rename from linux/ecosystem/apache2/latest/docker-compose.yml rename to linux/ecosystem/apache2/php5.5/docker-compose.yml index 99eebbfd1..6fb68deea 100644 --- a/linux/ecosystem/apache2/latest/docker-compose.yml +++ b/linux/ecosystem/apache2/php5.5/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/apache2:latest" + image: "epicmorg/apache2:php5.5" build: context: . diff --git a/linux/ecosystem/apache2/latest/docker-entrypoint.sh b/linux/ecosystem/apache2/php5.5/docker-entrypoint.sh similarity index 100% rename from linux/ecosystem/apache2/latest/docker-entrypoint.sh rename to linux/ecosystem/apache2/php5.5/docker-entrypoint.sh diff --git a/linux/ecosystem/apache2/latest/etc/apache2/apache2.conf b/linux/ecosystem/apache2/php5.5/etc/apache2/apache2.conf similarity index 100% rename from linux/ecosystem/apache2/latest/etc/apache2/apache2.conf rename to linux/ecosystem/apache2/php5.5/etc/apache2/apache2.conf diff --git a/linux/ecosystem/apache2/latest/etc/apache2/sites-enabled/localhost.conf b/linux/ecosystem/apache2/php5.5/etc/apache2/sites-enabled/localhost.conf similarity index 100% rename from linux/ecosystem/apache2/latest/etc/apache2/sites-enabled/localhost.conf rename to linux/ecosystem/apache2/php5.5/etc/apache2/sites-enabled/localhost.conf diff --git a/linux/ecosystem/apache2/latest/Dockerfile b/linux/ecosystem/apache2/php7.0/Dockerfile similarity index 85% rename from linux/ecosystem/apache2/latest/Dockerfile rename to linux/ecosystem/apache2/php7.0/Dockerfile index 9015c518f..d395f9d6d 100644 --- a/linux/ecosystem/apache2/latest/Dockerfile +++ b/linux/ecosystem/apache2/php7.0/Dockerfile @@ -1,31 +1,32 @@ -FROM epicmorg/php:latest +FROM epicmorg/php:php7.0 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 +ARG PHP_VER=7.0 +ARG PHP_MODULE_PATH=/usr/lib/php/20151012 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing Apache2 ################################################################## #installing apache2 repo RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' #Install base packages RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ apache2 \ apache2-utils \ - libapache2-mod-php7.4 \ + libapache2-mod-php7.0 \ libapache2-mod-webauth \ libapache2-mod-xforward \ - libapache2-mod-security2 && \ + libapache2-mod-security2 \ + libmemcached-dev && \ a2enmod \ - php7.4 \ + php7.0 \ rewrite \ ldap \ heartmonitor \ @@ -61,17 +62,24 @@ COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf ################################################################## RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing IOnCube addon ################################################################## -RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v ################################################################## # Installing Bolt addon ################################################################## -RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so" >> ${PHP_DIR}/apache2/php.ini +RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php70.so" >> ${PHP_DIR}/apache2/php.ini ################################################################## # Installing timezonedb addon @@ -94,13 +102,6 @@ RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ php -m && \ php -v -################################################################## -# Installing smbclient addon -################################################################## -RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ - php -m && \ - php -v - ################################################################## # cleaninig up ################################################################## @@ -108,10 +109,7 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* #healthcheck. good practice HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 diff --git a/linux/ecosystem/apache2/php7.0/Makefile b/linux/ecosystem/apache2/php7.0/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/apache2/php7.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php7.0/README.md b/linux/ecosystem/apache2/php7.0/README.md new file mode 100644 index 000000000..86a34d4b1 --- /dev/null +++ b/linux/ecosystem/apache2/php7.0/README.md @@ -0,0 +1,32 @@ +# Compose example + +```yml +version: '3.7' +services: + websites: + image: epicmorg/websites +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/latest/main/docker-compose.yml b/linux/ecosystem/apache2/php7.0/docker-compose.yml similarity index 61% rename from linux/ecosystem/testrail/latest/main/docker-compose.yml rename to linux/ecosystem/apache2/php7.0/docker-compose.yml index 288250f78..ef87b9bd3 100644 --- a/linux/ecosystem/testrail/latest/main/docker-compose.yml +++ b/linux/ecosystem/apache2/php7.0/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/testrail:latest" + image: "epicmorg/apache2:php7.0" build: context: . diff --git a/linux/ecosystem/apache2/php7.0/docker-entrypoint.sh b/linux/ecosystem/apache2/php7.0/docker-entrypoint.sh new file mode 100755 index 000000000..b421b8648 --- /dev/null +++ b/linux/ecosystem/apache2/php7.0/docker-entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Skipping..." +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/apache2/php7.0/etc/apache2/apache2.conf b/linux/ecosystem/apache2/php7.0/etc/apache2/apache2.conf new file mode 100644 index 000000000..eedaac25c --- /dev/null +++ b/linux/ecosystem/apache2/php7.0/etc/apache2/apache2.conf @@ -0,0 +1,231 @@ +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.4/ for detailed information about +# the directives and /usr/share/doc/apache2/README.Debian about Debian specific +# hints. +# +# +# Summary of how the Apache 2 configuration works in Debian: +# The Apache 2 web server configuration in Debian is quite different to +# upstream's suggested way to configure the web server. This is because Debian's +# default Apache2 installation attempts to make adding and removing modules, +# virtual hosts, and extra configuration directives as flexible as possible, in +# order to make automating the changes and administering the server as easy as +# possible. + +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf-enabled +# | `-- *.conf +# `-- sites-enabled +# `-- *.conf +# +# +# * apache2.conf is the main configuration file (this file). It puts the pieces +# together by including all remaining configuration files when starting up the +# web server. +# +# * ports.conf is always included from the main configuration file. It is +# supposed to determine listening ports for incoming connections which can be +# customized anytime. +# +# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ +# directories contain particular configuration snippets which manage modules, +# global configuration fragments, or virtual host configurations, +# respectively. +# +# They are activated by symlinking available configuration files from their +# respective *-available/ counterparts. These should be managed by using our +# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See +# their respective man pages for detailed information. +# +# * The binary is called apache2. Due to the use of environment variables, in +# the default configuration, apache2 needs to be started/stopped with +# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not +# work with the default configuration. + + +# Global configuration +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the Mutex documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +#Mutex file:${APACHE_LOCK_DIR} default + +# +# The directory where shm and other runtime files will be stored. +# + +DefaultRuntimeDir ${APACHE_RUN_DIR} + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +ServerName localhost + +#SecStatusEngine On + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/linux/ecosystem/apache2/php7.0/etc/apache2/sites-enabled/localhost.conf b/linux/ecosystem/apache2/php7.0/etc/apache2/sites-enabled/localhost.conf new file mode 100644 index 000000000..052ce2ec1 --- /dev/null +++ b/linux/ecosystem/apache2/php7.0/etc/apache2/sites-enabled/localhost.conf @@ -0,0 +1,8 @@ + + ServerName localhost + ServerAlias 127.0.0.1 + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + diff --git a/linux/ecosystem/apache2/php7.1/Dockerfile b/linux/ecosystem/apache2/php7.1/Dockerfile new file mode 100644 index 000000000..6127959f5 --- /dev/null +++ b/linux/ecosystem/apache2/php7.1/Dockerfile @@ -0,0 +1,128 @@ +FROM epicmorg/php:php7.1 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_VER=7.1 +ARG PHP_MODULE_PATH=/usr/lib/php/20160303 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php7.1 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 \ + libmemcached-dev && \ + a2enmod \ + php7.1 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + slotmem_shm \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# Apache2 Fixes +################################################################## +RUN rm -fv /etc/apache2/sites-enabled/000-default.conf +RUN rm -fv /etc/apache2/apache2.conf +COPY etc/apache2/sites-enabled/localhost.conf /etc/apache2/sites-enabled/localhost.conf +COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Bolt addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php71.so" >> ${PHP_DIR}/apache2/php.ini + +################################################################## +# Installing timezonedb addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh +RUN chown -Rf www-data:www-data /var/www + +#Final config +VOLUME ["/var/www"] +WORKDIR /var/www/ +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/apache2/php7.1/Makefile b/linux/ecosystem/apache2/php7.1/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/apache2/php7.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php7.1/README.md b/linux/ecosystem/apache2/php7.1/README.md new file mode 100644 index 000000000..86a34d4b1 --- /dev/null +++ b/linux/ecosystem/apache2/php7.1/README.md @@ -0,0 +1,32 @@ +# Compose example + +```yml +version: '3.7' +services: + websites: + image: epicmorg/websites +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/latest/ad/docker-compose.yml b/linux/ecosystem/apache2/php7.1/docker-compose.yml similarity index 60% rename from linux/ecosystem/testrail/latest/ad/docker-compose.yml rename to linux/ecosystem/apache2/php7.1/docker-compose.yml index 0cf4314f7..efb096e9f 100644 --- a/linux/ecosystem/testrail/latest/ad/docker-compose.yml +++ b/linux/ecosystem/apache2/php7.1/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/testrail:auth-ad" + image: "epicmorg/apache2:php7.1" build: context: . diff --git a/linux/ecosystem/apache2/php7.1/docker-entrypoint.sh b/linux/ecosystem/apache2/php7.1/docker-entrypoint.sh new file mode 100755 index 000000000..b421b8648 --- /dev/null +++ b/linux/ecosystem/apache2/php7.1/docker-entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Skipping..." +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/apache2/php7.1/etc/apache2/apache2.conf b/linux/ecosystem/apache2/php7.1/etc/apache2/apache2.conf new file mode 100644 index 000000000..eedaac25c --- /dev/null +++ b/linux/ecosystem/apache2/php7.1/etc/apache2/apache2.conf @@ -0,0 +1,231 @@ +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.4/ for detailed information about +# the directives and /usr/share/doc/apache2/README.Debian about Debian specific +# hints. +# +# +# Summary of how the Apache 2 configuration works in Debian: +# The Apache 2 web server configuration in Debian is quite different to +# upstream's suggested way to configure the web server. This is because Debian's +# default Apache2 installation attempts to make adding and removing modules, +# virtual hosts, and extra configuration directives as flexible as possible, in +# order to make automating the changes and administering the server as easy as +# possible. + +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf-enabled +# | `-- *.conf +# `-- sites-enabled +# `-- *.conf +# +# +# * apache2.conf is the main configuration file (this file). It puts the pieces +# together by including all remaining configuration files when starting up the +# web server. +# +# * ports.conf is always included from the main configuration file. It is +# supposed to determine listening ports for incoming connections which can be +# customized anytime. +# +# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ +# directories contain particular configuration snippets which manage modules, +# global configuration fragments, or virtual host configurations, +# respectively. +# +# They are activated by symlinking available configuration files from their +# respective *-available/ counterparts. These should be managed by using our +# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See +# their respective man pages for detailed information. +# +# * The binary is called apache2. Due to the use of environment variables, in +# the default configuration, apache2 needs to be started/stopped with +# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not +# work with the default configuration. + + +# Global configuration +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the Mutex documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +#Mutex file:${APACHE_LOCK_DIR} default + +# +# The directory where shm and other runtime files will be stored. +# + +DefaultRuntimeDir ${APACHE_RUN_DIR} + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +ServerName localhost + +#SecStatusEngine On + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/linux/ecosystem/apache2/php7.1/etc/apache2/sites-enabled/localhost.conf b/linux/ecosystem/apache2/php7.1/etc/apache2/sites-enabled/localhost.conf new file mode 100644 index 000000000..052ce2ec1 --- /dev/null +++ b/linux/ecosystem/apache2/php7.1/etc/apache2/sites-enabled/localhost.conf @@ -0,0 +1,8 @@ + + ServerName localhost + ServerAlias 127.0.0.1 + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + diff --git a/linux/ecosystem/apache2/php7.2/Dockerfile b/linux/ecosystem/apache2/php7.2/Dockerfile index 08af1f608..023beaf7f 100644 --- a/linux/ecosystem/apache2/php7.2/Dockerfile +++ b/linux/ecosystem/apache2/php7.2/Dockerfile @@ -6,13 +6,14 @@ ARG PHP_MODULE_PATH=/usr/lib/php/20170718 ARG PHP_VER=7.2 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing Apache2 ################################################################## #installing apache2 repo RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' #Install base packages RUN apt-get update && \ @@ -61,6 +62,13 @@ COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf ################################################################## RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing IOnCube addon ################################################################## @@ -101,10 +109,7 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* #healthcheck. good practice HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 diff --git a/linux/ecosystem/apache2/php7.3/Dockerfile b/linux/ecosystem/apache2/php7.3/Dockerfile index 6c2055e8c..8ad07b34b 100644 --- a/linux/ecosystem/apache2/php7.3/Dockerfile +++ b/linux/ecosystem/apache2/php7.3/Dockerfile @@ -6,13 +6,14 @@ ARG PHP_MODULE_PATH=/usr/lib/php/20180731 ARG PHP_VER=7.3 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing Apache2 ################################################################## #installing apache2 repo RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' #Install base packages RUN apt-get update && \ @@ -61,6 +62,13 @@ COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf ################################################################## RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing IOnCube addon ################################################################## @@ -102,9 +110,7 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* #healthcheck. good practice HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 diff --git a/linux/ecosystem/apache2/php7.4/Dockerfile b/linux/ecosystem/apache2/php7.4/Dockerfile index 9015c518f..d2d3ce25f 100644 --- a/linux/ecosystem/apache2/php7.4/Dockerfile +++ b/linux/ecosystem/apache2/php7.4/Dockerfile @@ -7,13 +7,14 @@ ARG PHP_VER=7.4 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing Apache2 ################################################################## #installing apache2 repo RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' #Install base packages RUN apt-get update && \ @@ -61,6 +62,13 @@ COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf ################################################################## RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing IOnCube addon ################################################################## @@ -108,10 +116,7 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* #healthcheck. good practice HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 diff --git a/linux/ecosystem/apache2/php8.0/Dockerfile b/linux/ecosystem/apache2/php8.0/Dockerfile index 3b6a02d37..43165dc8b 100644 --- a/linux/ecosystem/apache2/php8.0/Dockerfile +++ b/linux/ecosystem/apache2/php8.0/Dockerfile @@ -8,13 +8,14 @@ ARG PHP_VER=8.0 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing Apache2 ################################################################## #installing apache2 repo RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' #Install base packages RUN apt-get update && \ @@ -62,6 +63,13 @@ COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf ################################################################## RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -102,10 +110,7 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* #healthcheck. good practice HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 diff --git a/linux/ecosystem/apache2/php8.1/Dockerfile b/linux/ecosystem/apache2/php8.1/Dockerfile index c1eae7372..b6443cf67 100644 --- a/linux/ecosystem/apache2/php8.1/Dockerfile +++ b/linux/ecosystem/apache2/php8.1/Dockerfile @@ -8,13 +8,14 @@ ARG PHP_VER=8.1 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing Apache2 ################################################################## #installing apache2 repo RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' #Install base packages RUN apt-get update && \ @@ -62,6 +63,13 @@ COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf ################################################################## RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing IOnCube addon ################################################################## @@ -102,10 +110,7 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* #healthcheck. good practice HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 diff --git a/linux/ecosystem/apache2/php8.2/Dockerfile b/linux/ecosystem/apache2/php8.2/Dockerfile new file mode 100644 index 000000000..35ebaaa1e --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/Dockerfile @@ -0,0 +1,129 @@ +FROM epicmorg/php:php8.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_VER=20220829 +ARG PHP_MODULE_PATH=/usr/lib/php/${PHP_MODULE_VER} +ARG PHP_VER=8.2 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php8.1 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 && \ + a2enmod \ + php8.1 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + slotmem_shm \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# Apache2 Fixes +################################################################## +RUN rm -fv /etc/apache2/sites-enabled/000-default.conf +RUN rm -fv /etc/apache2/apache2.conf +COPY etc/apache2/sites-enabled/localhost.conf /etc/apache2/sites-enabled/localhost.conf +COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing IOnCube addon +################################################################## +#RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.2.so" >> ${PHP_DIR}/apache2/php.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing Bolt addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php82.so" >> ${PHP_DIR}/apache2/php.ini + +################################################################## +# Installing timezonedb addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh +RUN chown -Rf www-data:www-data /var/www + +#Final config +VOLUME ["/var/www"] +WORKDIR /var/www/ +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/apache2/php8.2/Makefile b/linux/ecosystem/apache2/php8.2/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php8.2/README.md b/linux/ecosystem/apache2/php8.2/README.md new file mode 100644 index 000000000..86a34d4b1 --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/README.md @@ -0,0 +1,32 @@ +# Compose example + +```yml +version: '3.7' +services: + websites: + image: epicmorg/websites +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/apache2/php8.2/docker-compose.yml b/linux/ecosystem/apache2/php8.2/docker-compose.yml new file mode 100644 index 000000000..b02695cc3 --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:php8.2" + build: + context: . diff --git a/linux/ecosystem/apache2/php8.2/docker-entrypoint.sh b/linux/ecosystem/apache2/php8.2/docker-entrypoint.sh new file mode 100755 index 000000000..b421b8648 --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/docker-entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Skipping..." +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/apache2/php8.2/etc/apache2/apache2.conf b/linux/ecosystem/apache2/php8.2/etc/apache2/apache2.conf new file mode 100644 index 000000000..eedaac25c --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/etc/apache2/apache2.conf @@ -0,0 +1,231 @@ +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.4/ for detailed information about +# the directives and /usr/share/doc/apache2/README.Debian about Debian specific +# hints. +# +# +# Summary of how the Apache 2 configuration works in Debian: +# The Apache 2 web server configuration in Debian is quite different to +# upstream's suggested way to configure the web server. This is because Debian's +# default Apache2 installation attempts to make adding and removing modules, +# virtual hosts, and extra configuration directives as flexible as possible, in +# order to make automating the changes and administering the server as easy as +# possible. + +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf-enabled +# | `-- *.conf +# `-- sites-enabled +# `-- *.conf +# +# +# * apache2.conf is the main configuration file (this file). It puts the pieces +# together by including all remaining configuration files when starting up the +# web server. +# +# * ports.conf is always included from the main configuration file. It is +# supposed to determine listening ports for incoming connections which can be +# customized anytime. +# +# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ +# directories contain particular configuration snippets which manage modules, +# global configuration fragments, or virtual host configurations, +# respectively. +# +# They are activated by symlinking available configuration files from their +# respective *-available/ counterparts. These should be managed by using our +# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See +# their respective man pages for detailed information. +# +# * The binary is called apache2. Due to the use of environment variables, in +# the default configuration, apache2 needs to be started/stopped with +# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not +# work with the default configuration. + + +# Global configuration +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the Mutex documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +#Mutex file:${APACHE_LOCK_DIR} default + +# +# The directory where shm and other runtime files will be stored. +# + +DefaultRuntimeDir ${APACHE_RUN_DIR} + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +ServerName localhost + +#SecStatusEngine On + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/linux/ecosystem/apache2/php8.2/etc/apache2/sites-enabled/localhost.conf b/linux/ecosystem/apache2/php8.2/etc/apache2/sites-enabled/localhost.conf new file mode 100644 index 000000000..052ce2ec1 --- /dev/null +++ b/linux/ecosystem/apache2/php8.2/etc/apache2/sites-enabled/localhost.conf @@ -0,0 +1,8 @@ + + ServerName localhost + ServerAlias 127.0.0.1 + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + diff --git a/linux/ecosystem/apache2/php8.3/Dockerfile b/linux/ecosystem/apache2/php8.3/Dockerfile new file mode 100644 index 000000000..87b1f2f88 --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/Dockerfile @@ -0,0 +1,129 @@ +FROM epicmorg/php:php8.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_VER=20220830 +ARG PHP_MODULE_PATH=/usr/lib/php/${PHP_MODULE_VER} +ARG PHP_VER=8.3 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php8.3 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 && \ + a2enmod \ + php8.3 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + slotmem_shm \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# Apache2 Fixes +################################################################## +RUN rm -fv /etc/apache2/sites-enabled/000-default.conf +RUN rm -fv /etc/apache2/apache2.conf +COPY etc/apache2/sites-enabled/localhost.conf /etc/apache2/sites-enabled/localhost.conf +COPY etc/apache2/apache2.conf /etc/apache2/apache2.conf + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing IOnCube addon +################################################################## +#RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.2.so" >> ${PHP_DIR}/apache2/php.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing Bolt addon +################################################################## +#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php81.so" >> ${PHP_DIR}/apache2/php.ini + +################################################################## +# Installing timezonedb addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh +RUN chown -Rf www-data:www-data /var/www + +#Final config +VOLUME ["/var/www"] +WORKDIR /var/www/ +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/apache2/php8.3/Makefile b/linux/ecosystem/apache2/php8.3/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php8.3/README.md b/linux/ecosystem/apache2/php8.3/README.md new file mode 100644 index 000000000..86a34d4b1 --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/README.md @@ -0,0 +1,32 @@ +# Compose example + +```yml +version: '3.7' +services: + websites: + image: epicmorg/websites +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/apache2/php8.3/docker-compose.yml b/linux/ecosystem/apache2/php8.3/docker-compose.yml new file mode 100644 index 000000000..a135a1648 --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:php8.3" + build: + context: . diff --git a/linux/ecosystem/apache2/php8.3/docker-entrypoint.sh b/linux/ecosystem/apache2/php8.3/docker-entrypoint.sh new file mode 100755 index 000000000..b421b8648 --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/docker-entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Skipping..." +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/apache2/php8.3/etc/apache2/apache2.conf b/linux/ecosystem/apache2/php8.3/etc/apache2/apache2.conf new file mode 100644 index 000000000..eedaac25c --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/etc/apache2/apache2.conf @@ -0,0 +1,231 @@ +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.4/ for detailed information about +# the directives and /usr/share/doc/apache2/README.Debian about Debian specific +# hints. +# +# +# Summary of how the Apache 2 configuration works in Debian: +# The Apache 2 web server configuration in Debian is quite different to +# upstream's suggested way to configure the web server. This is because Debian's +# default Apache2 installation attempts to make adding and removing modules, +# virtual hosts, and extra configuration directives as flexible as possible, in +# order to make automating the changes and administering the server as easy as +# possible. + +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf-enabled +# | `-- *.conf +# `-- sites-enabled +# `-- *.conf +# +# +# * apache2.conf is the main configuration file (this file). It puts the pieces +# together by including all remaining configuration files when starting up the +# web server. +# +# * ports.conf is always included from the main configuration file. It is +# supposed to determine listening ports for incoming connections which can be +# customized anytime. +# +# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ +# directories contain particular configuration snippets which manage modules, +# global configuration fragments, or virtual host configurations, +# respectively. +# +# They are activated by symlinking available configuration files from their +# respective *-available/ counterparts. These should be managed by using our +# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See +# their respective man pages for detailed information. +# +# * The binary is called apache2. Due to the use of environment variables, in +# the default configuration, apache2 needs to be started/stopped with +# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not +# work with the default configuration. + + +# Global configuration +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the Mutex documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +#Mutex file:${APACHE_LOCK_DIR} default + +# +# The directory where shm and other runtime files will be stored. +# + +DefaultRuntimeDir ${APACHE_RUN_DIR} + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +ServerName localhost + +#SecStatusEngine On + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/linux/ecosystem/apache2/php8.3/etc/apache2/sites-enabled/localhost.conf b/linux/ecosystem/apache2/php8.3/etc/apache2/sites-enabled/localhost.conf new file mode 100644 index 000000000..052ce2ec1 --- /dev/null +++ b/linux/ecosystem/apache2/php8.3/etc/apache2/sites-enabled/localhost.conf @@ -0,0 +1,8 @@ + + ServerName localhost + ServerAlias 127.0.0.1 + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + diff --git a/linux/ecosystem/php/latest/usr/lib/php/20190902/phpBolt-extension-1.0.4-php74.so b/linux/ecosystem/php/latest/usr/lib/php/20190902/phpBolt-extension-1.0.4-php74.so deleted file mode 100644 index 9e8df1195..000000000 Binary files a/linux/ecosystem/php/latest/usr/lib/php/20190902/phpBolt-extension-1.0.4-php74.so and /dev/null differ diff --git a/linux/ecosystem/php/php5.5/Dockerfile b/linux/ecosystem/php/php5.5/Dockerfile new file mode 100644 index 000000000..2ea919341 --- /dev/null +++ b/linux/ecosystem/php/php5.5/Dockerfile @@ -0,0 +1,137 @@ +FROM epicmorg/debian:bullseye +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_VER=5.5 +ARG PHP_MODULE_PATH=/usr/local/lib/php/extensions/no-debug-non-zts-20121212 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +ENV PHP_INI_DIR=/usr/local/etc/php +ENV PHP_FILENAME=php-5.5.38.tar.xz +ENV PHPIZE_DEPS=autoconf +ENV PHP_SHA256=cb527c44b48343c8557fe2446464ff1d4695155a95601083e5d1f175df95580f +ENV PHP_VERSION=5.5.38 + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + libmemcached-dev \ + imagemagick \ + libncurses5 \ + autoconf + +################################################################## +# Installing PHP5.5 +################################################################## +COPY --from=php:5.5 /usr/local/bin /usr/local/bin +COPY --from=php:5.5 /usr/local/etc/php /usr/local/etc/php +COPY --from=php:5.5 /usr/local/etc/pear.conf /usr/local/etc/pear.conf +COPY --from=php:5.5 /usr/local/include/php /usr/local/include/php +COPY --from=php:5.5 /usr/local/lib/php /usr/local/lib/php +COPY --from=php:5.5 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 +COPY --from=php:5.5 /usr/lib/x86_64-linux-gnu/openssl-1.0.0 /usr/lib/x86_64-linux-gnu/openssl-1.0.0 +COPY --from=php:5.5 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 +COPY --from=php:5.5 /usr/lib/x86_64-linux-gnu/libcurl.so.4 /usr/lib/x86_64-linux-gnu/libcurl.so.4 +COPY --from=php:5.5 /usr/local/php /usr/local/php +COPY --from=php:5.5 /usr/src/php.tar.xz /usr/src/php.tar.xz +COPY --from=php:5.5 /usr/src/php.tar.xz.asc /usr/src/php.tar.xz.asc + +################################################################## +# Enabling extensions +################################################################## +RUN pear update-channels && \ + pecl channel-update pecl.php.net && \ + pear upgrade + +############################################################################## +# Cassandra CPP Support Install +############################################################################## +#OPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +#RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ +# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ +# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ +# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ +# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ +# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ +# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +#RUN cd /tmp/cassandra-php-driver && \ +# dpkg -i ./multiarch-support_2.28_amd64.deb && \ +# dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ +# dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ +# dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ +# dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ +# dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ +# dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +# echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > /usr/local/etc/php/conf.d/cassandra.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing timezonedb addon +################################################################## +RUN pecl install timezonedb && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN pecl install imagick && \ +## echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_5.5.so ${PHP_MODULE_PATH} && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_5.5.so" >> /usr/local/etc/php/conf.d/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +#COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +#RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ +## ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ +# ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ +# ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ +# ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php5.5/Dockerfile.dev b/linux/ecosystem/php/php5.5/Dockerfile.dev new file mode 100644 index 000000000..ad54fae72 --- /dev/null +++ b/linux/ecosystem/php/php5.5/Dockerfile.dev @@ -0,0 +1,74 @@ +FROM epicmorg/debian:bullseye-develop AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-5.0 + +ARG P4API_VER=r20.1 +ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG P4MODULE_PATH=/usr/lib/php/20121113 + +ARG PHP_INI_DIR=/usr/local/etc/php +ARG PHP_FILENAME=php-5.5.38.tar.xz +ARG PHPIZE_DEPS=autoconf +ARG PHP_SHA256=cb527c44b48343c8557fe2446464ff1d4695155a95601083e5d1f175df95580f +ARG PHP_VERSION=5.5.38 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP5.5 +################################################################## +COPY --from=php:5.5 /usr/local/bin /usr/local/bin +COPY --from=php:5.5 /usr/local/etc/php /usr/local/etc/php +COPY --from=php:5.5 /usr/local/etc/pear.conf /usr/local/etc/pear.conf +COPY --from=php:5.5 /usr/local/include/php /usr/local/include/php +COPY --from=php:5.5 /usr/local/lib/php /usr/local/lib/php +COPY --from=php:5.5 /usr/local/php /usr/local/php +COPY --from=php:5.5 /usr/src/php.tar.xz /usr/src/php.tar.xz +COPY --from=php:5.5 /usr/src/php.tar.xz.asc /usr/src/php.tar.xz.asc + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} diff --git a/linux/ecosystem/php/php5.5/Makefile b/linux/ecosystem/php/php5.5/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/php/php5.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/latest/README.md b/linux/ecosystem/php/php5.5/README.md similarity index 100% rename from linux/ecosystem/php/latest/README.md rename to linux/ecosystem/php/php5.5/README.md diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb b/linux/ecosystem/php/php5.5/addons/multiarch-support_2.28_amd64.deb similarity index 100% rename from linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb rename to linux/ecosystem/php/php5.5/addons/multiarch-support_2.28_amd64.deb diff --git a/linux/ecosystem/php/latest/docker-compose.yml b/linux/ecosystem/php/php5.5/docker-compose.yml similarity index 64% rename from linux/ecosystem/php/latest/docker-compose.yml rename to linux/ecosystem/php/php5.5/docker-compose.yml index 2efbde924..076bd824b 100644 --- a/linux/ecosystem/php/latest/docker-compose.yml +++ b/linux/ecosystem/php/php5.5/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/php:latest" + image: "epicmorg/php:php5.5" build: context: . diff --git a/linux/ecosystem/php/latest/Dockerfile b/linux/ecosystem/php/php7.0/Dockerfile similarity index 64% rename from linux/ecosystem/php/latest/Dockerfile rename to linux/ecosystem/php/php7.0/Dockerfile index d5b592aa4..39611a678 100644 --- a/linux/ecosystem/php/latest/Dockerfile +++ b/linux/ecosystem/php/php7.0/Dockerfile @@ -12,7 +12,7 @@ ARG SRC_DIR=${BUILDS_DIR}/src ARG EXPORT_DIR=${BUILDS_DIR}/export ARG P4API_DIR=${SRC_DIR}/p4api ARG P4PHP_DIR=${SRC_DIR}/p4php -ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 +ARG MAKE_DIR=${SRC_DIR}/p4php-7.0 ARG P4API_VER=r20.1 ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz @@ -20,7 +20,7 @@ ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_ ARG P4PHP_VER=r20.1 ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG P4MODULE_PATH=/usr/lib/php/20151012 ################################################################## # Files and folders @@ -30,16 +30,23 @@ RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P ################################################################## # Installing PHP7 ################################################################## +#installing php repo +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' + #Install base packages RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ - smbclient libsmbclient libsmbclient-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi + php7.0 \ + php7.0-common \ + php7.0-dev \ + php7.0-fpm \ + php7.0-cli \ + php7.0-cgi && \ + update-alternatives --set php /usr/bin/php7.0 && \ + php -m && \ + php -v ################################################################## # preparing p4src @@ -67,13 +74,7 @@ RUN cd ${MAKE_DIR} && \ make && \ make test && \ make install && \ - cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} - -################################################################## -# compilling smbclient -################################################################## -RUN pecl install smbclient && \ - cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} ################################################################## ################################################################## @@ -83,63 +84,65 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 +ARG PHP_VER=7.0 +ARG PHP_MODULE_PATH=/usr/lib/php/20151012 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing PHP7 ################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi \ - php-pear \ - php7.4-gmp \ - php7.4-snmp \ - php7.4-ldap \ - php7.4-mail \ - php7.4-soap \ - php7.4-mysql \ - php7.4-memcached \ - php7.4-memcache \ - php7.4-igbinary \ - php7.4-interbase \ - php7.4-curl \ - php7.4-gd \ - php7.4-intl \ - php7.4-zip \ - php7.4-bcmath \ - php7.4-imap \ - php7.4-pspell \ - php7.4-sqlite3 \ - php7.4-pgsql \ - php7.4-tidy \ - php7.4-xmlrpc \ - php7.4-xml \ - php7.4-mbstring \ - php7.4-apcu \ - php7.4-common \ - php7.4-json \ - php7.4-readline \ - php7.4-enchant \ - php7.4-ssh2 \ - php7.4-oauth \ - php7.4-gmagick \ - php7.4-gnupg \ - php7.4-redis \ + libgmp-dev \ + php7.0 \ + php7.0-common \ + php7.0-dev \ + php7.0-ldap \ + php7.0-mail \ + php7.0-mailparse \ + php7.0-soap \ + php7.0-mysql \ + php7.0-curl \ + php7.0-gd \ + php7.0-intl \ + php7.0-zip \ + php7.0-bcmath \ + php7.0-fpm \ + php7.0-imap \ + php7.0-pspell \ + php7.0-recode \ + php7.0-sqlite3 \ + php7.0-pgsql \ + php7.0-tidy \ + php7.0-xmlrpc \ + php7.0-xml \ + php7.0-mbstring \ + php7.0-gettext \ + php7.0-apcu \ + php7.0-cli \ + php7.0-common \ + php7.0-cgi \ + php7.0-json \ + php7.0-readline \ + php7.0-enchant \ + php7.0-ssh2 \ + php7.0-oauth \ + php7.0-gmagick \ + php7.0-redis \ + php7.0-smbclient \ + php7.0-yaml \ + php7.0-geoip \ smbclient libsmbclient \ - php7.4-yaml \ - php7.4-geoip \ sendmail && \ ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - update-alternatives --set php /usr/bin/php7.4 && \ + update-alternatives --set php /usr/bin/php7.0 && \ + pear update-channels && \ + pear upgrade && \ pecl channel-update pecl.php.net && \ php -m && \ php -v @@ -148,8 +151,6 @@ RUN apt-get update && \ # Enabling extensions ################################################################## RUN phpenmod \ - snmp \ - gmp \ calendar \ ldap \ curl \ @@ -158,12 +159,10 @@ RUN phpenmod \ fileinfo \ gd \ geoip \ - gnupg \ iconv \ imap \ json \ mbstring \ - memcached \ mysqli \ mysqlnd \ oauth \ @@ -187,6 +186,39 @@ RUN phpenmod \ php -m && \ php -v +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN pecl install cassandra && \ + echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -218,11 +250,11 @@ RUN apt-get update && \ ################################################################## ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ -# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + cp /tmp/ioncube/ioncube_loader_lin_7.0.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/fpm/php.ini && \ php -m && \ php -v @@ -230,11 +262,11 @@ RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ # Installing Bolt addon ################################################################## #ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.4.zip /tmp/phpBolt.zip -COPY usr/lib/php/20190902/phpBolt-extension-1.0.4-php74.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so -#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so" >> ${PHP_DIR}/apache2/php.ini && \ -RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so" >> ${PHP_DIR}/fpm/php.ini && \ +COPY usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php70.so +#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php70.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php70.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php70.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php70.so" >> ${PHP_DIR}/fpm/php.ini && \ php -m && \ php -v @@ -242,24 +274,14 @@ RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php74.so" >> ${ # Installing P4 addon ################################################################## COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension = ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ +RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ +# ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ php -m && \ php -v -################################################################## -# Installing smbclient addon -################################################################## -COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} -RUN echo "extension = ${PHP_MODULE_PATH}/smbclient.so" > ${SMB_PHP_INI} && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ - php -m && \ - php -v - ################################################################## # Installing Composer addon ################################################################## @@ -275,8 +297,4 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.0/Makefile b/linux/ecosystem/php/php7.0/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/php/php7.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php7.0/README.md b/linux/ecosystem/php/php7.0/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb b/linux/ecosystem/php/php7.0/addons/multiarch-support_2.28_amd64.deb similarity index 100% rename from linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb rename to linux/ecosystem/php/php7.0/addons/multiarch-support_2.28_amd64.deb diff --git a/linux/ecosystem/php/php7.0/docker-compose.yml b/linux/ecosystem/php/php7.0/docker-compose.yml new file mode 100644 index 000000000..a855c25db --- /dev/null +++ b/linux/ecosystem/php/php7.0/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php7.0" + build: + context: . diff --git a/linux/ecosystem/php/php7.0/usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so b/linux/ecosystem/php/php7.0/usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so new file mode 100644 index 000000000..e6d3abfda Binary files /dev/null and b/linux/ecosystem/php/php7.0/usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so differ diff --git a/linux/ecosystem/php/php7.1/Dockerfile b/linux/ecosystem/php/php7.1/Dockerfile new file mode 100644 index 000000000..cce88197a --- /dev/null +++ b/linux/ecosystem/php/php7.1/Dockerfile @@ -0,0 +1,301 @@ +FROM epicmorg/debian:bullseye-develop AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.1 + +ARG P4API_VER=r20.1 +ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG P4MODULE_PATH=/usr/lib/php/20160303 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.1 \ + php7.1-common \ + php7.1-dev \ + php7.1-fpm \ + php7.1-cli \ + php7.1-cgi && \ + update-alternatives --set php /usr/bin/php7.1 && \ + php -m && \ + php -v + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/debian:bullseye +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_VER=7.1 +ARG PHP_MODULE_PATH=/usr/lib/php/20160303 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing PHP7 +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + libgmp-dev \ + php7.1 \ + php7.1-common \ + php7.1-dev \ + php7.1-ldap \ + php7.1-mail \ + php7.1-mailparse \ + php7.1-soap \ + php7.1-mysql \ + php7.1-curl \ + php7.1-gd \ + php7.1-intl \ + php7.1-zip \ + php7.1-bcmath \ + php7.1-fpm \ + php7.1-imap \ + php7.1-pspell \ + php7.1-recode \ + php7.1-sqlite3 \ + php7.1-pgsql \ + php7.1-tidy \ + php7.1-xmlrpc \ + php7.1-xml \ + php7.1-mbstring \ + php7.1-gettext \ + php7.1-apcu \ + php7.1-cli \ + php7.1-common \ + php7.1-cgi \ + php7.1-json \ + php7.1-readline \ + php7.1-enchant \ + php7.1-ssh2 \ + php7.1-oauth \ + php7.1-gmagick \ + php7.1-redis \ + php7.1-smbclient \ + php7.1-yaml \ + php7.1-geoip \ + smbclient libsmbclient \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.1 && \ + pear update-channels && \ + pear upgrade && \ + pecl channel-update pecl.php.net && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + iconv \ + imap \ + json \ + mbstring \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +RUN pecl install cassandra && \ + echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + +################################################################## +# Installing timezonedb addon +################################################################## +RUN pecl install timezonedb && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.1.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Bolt addon +################################################################## +#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.4.zip /tmp/phpBolt.zip +COPY usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php71.so +#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php71.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php71.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php71.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php71.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ +# ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + diff --git a/linux/ecosystem/php/php7.1/Makefile b/linux/ecosystem/php/php7.1/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/php/php7.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php7.1/README.md b/linux/ecosystem/php/php7.1/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb b/linux/ecosystem/php/php7.1/addons/multiarch-support_2.28_amd64.deb similarity index 100% rename from linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb rename to linux/ecosystem/php/php7.1/addons/multiarch-support_2.28_amd64.deb diff --git a/linux/ecosystem/php/php7.1/docker-compose.yml b/linux/ecosystem/php/php7.1/docker-compose.yml new file mode 100644 index 000000000..30f797f6f --- /dev/null +++ b/linux/ecosystem/php/php7.1/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php7.1" + build: + context: . diff --git a/linux/ecosystem/php/php7.1/usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so b/linux/ecosystem/php/php7.1/usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so new file mode 100644 index 000000000..75149ffcf Binary files /dev/null and b/linux/ecosystem/php/php7.1/usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so differ diff --git a/linux/ecosystem/php/php7.2/Dockerfile b/linux/ecosystem/php/php7.2/Dockerfile index 38d105042..eaf75711f 100644 --- a/linux/ecosystem/php/php7.2/Dockerfile +++ b/linux/ecosystem/php/php7.2/Dockerfile @@ -32,17 +32,21 @@ RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P ################################################################## #installing php repo RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' #Install base packages RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ php7.2 \ + php7.2-common \ php7.2-dev \ php7.2-fpm \ php7.2-cli \ - php7.2-cgi + php7.2-cgi && \ + update-alternatives --set php /usr/bin/php7.2 && \ + php -m && \ + php -v ################################################################## # preparing p4src @@ -72,7 +76,6 @@ RUN cd ${MAKE_DIR} && \ make install && \ cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} - ################################################################## ################################################################## ################################################################## @@ -85,18 +88,21 @@ ARG PHP_MODULE_PATH=/usr/lib/php/20170718 ARG PHP_VER=7.2 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing PHP7 ################################################################## RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ - php7.2-ldap \ - php7.2-dev \ + libgmp-dev \ php7.2 \ + php7.2-common \ + php7.2-dev \ + php7.2-ldap \ php7.2-mail \ php7.2-mailparse \ php7.2-soap \ @@ -131,9 +137,12 @@ RUN apt-get update && \ php7.2-smbclient \ php7.2-yaml \ php7.2-geoip \ + smbclient libsmbclient \ sendmail && \ ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ update-alternatives --set php /usr/bin/php7.2 && \ + pear update-channels && \ + pear upgrade && \ pecl channel-update pecl.php.net && \ php -m && \ php -v @@ -177,6 +186,40 @@ RUN phpenmod \ php -m && \ php -v +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +COPY usr/lib/php/20170718/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -232,7 +275,7 @@ RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php72.so" >> ${ # Installing P4 addon ################################################################## COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extensio n= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ +RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ # ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ @@ -255,8 +298,5 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb b/linux/ecosystem/php/php7.2/addons/multiarch-support_2.28_amd64.deb similarity index 100% rename from linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/multiarch-support_2.28-10+deb10u1_amd64.deb rename to linux/ecosystem/php/php7.2/addons/multiarch-support_2.28_amd64.deb diff --git a/linux/ecosystem/php/php7.2/usr/lib/php/20170718/cassandra.so b/linux/ecosystem/php/php7.2/usr/lib/php/20170718/cassandra.so new file mode 100644 index 000000000..fb54b0cbd Binary files /dev/null and b/linux/ecosystem/php/php7.2/usr/lib/php/20170718/cassandra.so differ diff --git a/linux/ecosystem/php/php7.3/Dockerfile b/linux/ecosystem/php/php7.3/Dockerfile index 85e322967..3a2f65392 100644 --- a/linux/ecosystem/php/php7.3/Dockerfile +++ b/linux/ecosystem/php/php7.3/Dockerfile @@ -32,17 +32,21 @@ RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P ################################################################## #installing php repo RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' #Install base packages RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ php7.3 \ + php7.3-common \ php7.3-dev \ php7.3-fpm \ php7.3-cli \ - php7.3-cgi + php7.3-cgi && \ + update-alternatives --set php /usr/bin/php7.3 && \ + php -m && \ + php -v ################################################################## # preparing p4src @@ -84,27 +88,25 @@ ARG PHP_MODULE_PATH=/usr/lib/php/20180731 ARG PHP_VER=7.3 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing PHP7 ################################################################## RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ - php7.3-gmp \ - php7.3-snmp \ - php7.3-ldap \ - php7.3-dev \ + libgmp-dev \ php7.3 \ - php7.3-mail \ + php7.3-common \ + php7.3-dev \ + php7.3-ldap \ + php7.3-mail \ php7.3-mailparse \ php7.3-soap \ php7.3-mysql \ - php7.3-memcached \ - php7.3-memcache \ - php7.3-igbinary \ php7.3-curl \ php7.3-gd \ php7.3-intl \ @@ -135,9 +137,13 @@ RUN apt-get update && \ php7.3-smbclient \ php7.3-yaml \ php7.3-geoip \ + smbclient libsmbclient \ sendmail && \ ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ update-alternatives --set php /usr/bin/php7.3 && \ + pear update-channels && \ + pear upgrade && \ + pecl channel-update pecl.php.net && \ php -m && \ php -v @@ -184,6 +190,40 @@ RUN phpenmod \ php -m && \ php -v +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +COPY usr/lib/php/20180731/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -261,8 +301,4 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.3/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/php/php7.3/addons/multiarch-support_2.28_amd64.deb new file mode 100644 index 000000000..7cf23ffa8 Binary files /dev/null and b/linux/ecosystem/php/php7.3/addons/multiarch-support_2.28_amd64.deb differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so b/linux/ecosystem/php/php7.3/usr/lib/php/20180731/cassandra.so old mode 100755 new mode 100644 similarity index 100% rename from linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so rename to linux/ecosystem/php/php7.3/usr/lib/php/20180731/cassandra.so diff --git a/linux/ecosystem/php/php7.4/Dockerfile b/linux/ecosystem/php/php7.4/Dockerfile index d5b592aa4..febe31356 100644 --- a/linux/ecosystem/php/php7.4/Dockerfile +++ b/linux/ecosystem/php/php7.4/Dockerfile @@ -31,15 +31,21 @@ RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P # Installing PHP7 ################################################################## #Install base packages +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ smbclient libsmbclient libsmbclient-dev \ php7.4 \ + php7.4-common \ php7.4-dev \ php7.4-fpm \ php7.4-cli \ - php7.4-cgi + php7.4-cgi && \ + update-alternatives --set php /usr/bin/php7.4 && \ + php -m && \ + php -v ################################################################## # preparing p4src @@ -88,58 +94,61 @@ ARG PHP_VER=7.4 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing PHP7 ################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ + libgmp-dev \ php7.4 \ + php7.4-common \ php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi \ - php-pear \ - php7.4-gmp \ - php7.4-snmp \ php7.4-ldap \ - php7.4-mail \ + php7.4-mail \ + php7.4-mailparse \ php7.4-soap \ php7.4-mysql \ - php7.4-memcached \ - php7.4-memcache \ - php7.4-igbinary \ - php7.4-interbase \ php7.4-curl \ php7.4-gd \ php7.4-intl \ php7.4-zip \ php7.4-bcmath \ + php7.4-fpm \ php7.4-imap \ php7.4-pspell \ + php7.4-recode \ php7.4-sqlite3 \ php7.4-pgsql \ php7.4-tidy \ php7.4-xmlrpc \ php7.4-xml \ php7.4-mbstring \ + php7.4-gettext \ php7.4-apcu \ + php7.4-cli \ php7.4-common \ + php7.4-cgi \ php7.4-json \ php7.4-readline \ php7.4-enchant \ php7.4-ssh2 \ php7.4-oauth \ php7.4-gmagick \ - php7.4-gnupg \ php7.4-redis \ - smbclient libsmbclient \ + php7.4-smbclient \ php7.4-yaml \ php7.4-geoip \ + smbclient libsmbclient \ sendmail && \ ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ update-alternatives --set php /usr/bin/php7.4 && \ + pear update-channels && \ + pear upgrade && \ pecl channel-update pecl.php.net && \ php -m && \ php -v @@ -187,6 +196,40 @@ RUN phpenmod \ php -m && \ php -v +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +COPY usr/lib/php/20190902/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -275,8 +318,5 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.4/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/php/php7.4/addons/multiarch-support_2.28_amd64.deb new file mode 100644 index 000000000..7cf23ffa8 Binary files /dev/null and b/linux/ecosystem/php/php7.4/addons/multiarch-support_2.28_amd64.deb differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so b/linux/ecosystem/php/php7.4/usr/lib/php/20190902/cassandra.so old mode 100755 new mode 100644 similarity index 100% rename from linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so rename to linux/ecosystem/php/php7.4/usr/lib/php/20190902/cassandra.so diff --git a/linux/ecosystem/php/php8.0/Dockerfile b/linux/ecosystem/php/php8.0/Dockerfile index a78125f00..24b245cbc 100644 --- a/linux/ecosystem/php/php8.0/Dockerfile +++ b/linux/ecosystem/php/php8.0/Dockerfile @@ -8,6 +8,7 @@ ARG PHP_VER=8.0 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing PHP8 @@ -18,52 +19,51 @@ RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ + libgmp-dev \ php8.0 \ + php8.0-common \ php8.0-dev \ - php8.0-fpm \ - php8.0-cli \ - php8.0-cgi \ - php-pear \ - php8.0-gmp \ - php8.0-snmp \ php8.0-ldap \ - php8.0-mail \ + php8.0-mail \ + php8.0-mailparse \ php8.0-soap \ php8.0-mysql \ - php8.0-memcached \ - php8.0-memcache \ - php8.0-igbinary \ - php8.0-interbase \ php8.0-curl \ php8.0-gd \ php8.0-intl \ php8.0-zip \ php8.0-bcmath \ + php8.0-fpm \ php8.0-imap \ php8.0-pspell \ + php8.0-recode \ php8.0-sqlite3 \ php8.0-pgsql \ php8.0-tidy \ php8.0-xmlrpc \ php8.0-xml \ php8.0-mbstring \ + php8.0-gettext \ php8.0-apcu \ + php8.0-cli \ php8.0-common \ -# php8.0-json \ + php8.0-cgi \ + php8.0-json \ php8.0-readline \ php8.0-enchant \ php8.0-ssh2 \ php8.0-oauth \ php8.0-gmagick \ - php8.0-gnupg \ php8.0-redis \ php8.0-smbclient \ - smbclient libsmbclient \ php8.0-yaml \ -# php8.0-geoip \ + php8.0-geoip \ + smbclient libsmbclient \ sendmail && \ ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ update-alternatives --set php /usr/bin/php8.0 && \ + pear update-channels && \ + pear upgrade && \ pecl channel-update pecl.php.net && \ php -m && \ php -v @@ -111,6 +111,40 @@ RUN phpenmod \ php -m && \ php -v +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +COPY usr/lib/php/20200930/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -180,8 +214,4 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.0/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/php/php8.0/addons/multiarch-support_2.28_amd64.deb new file mode 100644 index 000000000..7cf23ffa8 Binary files /dev/null and b/linux/ecosystem/php/php8.0/addons/multiarch-support_2.28_amd64.deb differ diff --git a/linux/ecosystem/php/php8.0/usr/lib/php/20200930/cassandra.so b/linux/ecosystem/php/php8.0/usr/lib/php/20200930/cassandra.so new file mode 100644 index 000000000..c7de65288 Binary files /dev/null and b/linux/ecosystem/php/php8.0/usr/lib/php/20200930/cassandra.so differ diff --git a/linux/ecosystem/php/php8.1/Dockerfile b/linux/ecosystem/php/php8.1/Dockerfile index 7fa8ed101..e59f2cb2c 100644 --- a/linux/ecosystem/php/php8.1/Dockerfile +++ b/linux/ecosystem/php/php8.1/Dockerfile @@ -8,6 +8,7 @@ ARG PHP_VER=8.1 ARG PHP_DIR=/etc/php/${PHP_VER} ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini ################################################################## # Installing PHP8 @@ -18,52 +19,51 @@ RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ + libgmp-dev \ php8.1 \ + php8.1-common \ php8.1-dev \ - php8.1-fpm \ - php8.1-cli \ - php8.1-cgi \ - php-pear \ - php8.1-gmp \ - php8.1-snmp \ php8.1-ldap \ - php8.1-mail \ + php8.1-mail \ + php8.1-mailparse \ php8.1-soap \ php8.1-mysql \ - php8.1-memcached \ - php8.1-memcache \ - php8.1-igbinary \ - php8.1-interbase \ php8.1-curl \ php8.1-gd \ php8.1-intl \ php8.1-zip \ php8.1-bcmath \ + php8.1-fpm \ php8.1-imap \ php8.1-pspell \ + php8.1-recode \ php8.1-sqlite3 \ php8.1-pgsql \ php8.1-tidy \ php8.1-xmlrpc \ php8.1-xml \ php8.1-mbstring \ + php8.1-gettext \ php8.1-apcu \ + php8.1-cli \ php8.1-common \ -# php8.1-json \ + php8.1-cgi \ + php8.1-json \ php8.1-readline \ php8.1-enchant \ php8.1-ssh2 \ php8.1-oauth \ php8.1-gmagick \ - php8.1-gnupg \ php8.1-redis \ php8.1-smbclient \ - smbclient libsmbclient \ php8.1-yaml \ -# php8.1-geoip \ + php8.1-geoip \ + smbclient libsmbclient \ sendmail && \ ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ update-alternatives --set php /usr/bin/php8.1 && \ + pear update-channels && \ + pear upgrade && \ pecl channel-update pecl.php.net && \ php -m && \ php -v @@ -111,6 +111,40 @@ RUN phpenmod \ php -m && \ php -v +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +COPY usr/lib/php/20210902/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + ################################################################## # Installing timezonedb addon ################################################################## @@ -177,8 +211,5 @@ RUN apt clean -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.1/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/php/php8.1/addons/multiarch-support_2.28_amd64.deb new file mode 100644 index 000000000..7cf23ffa8 Binary files /dev/null and b/linux/ecosystem/php/php8.1/addons/multiarch-support_2.28_amd64.deb differ diff --git a/linux/ecosystem/php/php8.1/usr/lib/php/20210902/cassandra.so b/linux/ecosystem/php/php8.1/usr/lib/php/20210902/cassandra.so new file mode 100644 index 000000000..f2d94833c Binary files /dev/null and b/linux/ecosystem/php/php8.1/usr/lib/php/20210902/cassandra.so differ diff --git a/linux/ecosystem/php/php8.2/Dockerfile b/linux/ecosystem/php/php8.2/Dockerfile new file mode 100644 index 000000000..e13462e11 --- /dev/null +++ b/linux/ecosystem/php/php8.2/Dockerfile @@ -0,0 +1,211 @@ +FROM epicmorg/debian:bullseye +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_VER=8.2 +ARG PHP_MODULE_VER=20220829 +ARG PHP_MODULE_PATH=/usr/lib/php/${PHP_MODULE_VER} +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing PHP8 +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg && \ + sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' + +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + libgmp-dev \ + php8.2 \ + php8.2-common \ + php8.2-dev \ + php8.2-ldap \ + php8.2-mail \ + php8.2-mailparse \ + php8.2-soap \ + php8.2-mysql \ + php8.2-curl \ + php8.2-gd \ + php8.2-intl \ + php8.2-zip \ + php8.2-bcmath \ + php8.2-fpm \ + php8.2-imap \ + php8.2-pspell \ + php8.2-sqlite3 \ + php8.2-pgsql \ + php8.2-tidy \ + php8.2-xmlrpc \ + php8.2-xml \ + php8.2-mbstring \ + php8.2-gettext \ + php8.2-apcu \ + php8.2-cli \ + php8.2-common \ + php8.2-cgi \ + php8.2-readline \ + php8.2-enchant \ + php8.2-ssh2 \ + php8.2-oauth \ + php8.2-gmagick \ + php8.2-redis \ + php8.2-smbclient \ + php8.2-yaml \ + smbclient libsmbclient \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php8.2 && \ + pear update-channels && \ + pear upgrade && \ + pecl channel-update pecl.php.net && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +COPY usr/lib/php/20220829/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ + ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ + php -m && \ + php -v + +################################################################## +# Installing timezonedb addon +################################################################## +RUN pecl install timezonedb && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################# +#ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +#RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ +# cp /tmp/ioncube/ioncube_loader_lin_8.2.so ${PHP_MODULE_PATH} && \ +### echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.2.so" >> ${PHP_DIR}/apache2/php.ini && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.2.so" >> ${PHP_DIR}/cgi/php.ini && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.2.so" >> ${PHP_DIR}/cli/php.ini && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.2.so" >> ${PHP_DIR}/fpm/php.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing Bolt addon +################################################################## +#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.4.zip /tmp/phpBolt.zip +COPY usr/lib/php/20220829/phpBolt-extension-1.0.4-php82.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php82.so +#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php82.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php82.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php82.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php82.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.2/Makefile b/linux/ecosystem/php/php8.2/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/php/php8.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php8.2/README.md b/linux/ecosystem/php/php8.2/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/php/php8.2/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/php/php8.2/addons/multiarch-support_2.28_amd64.deb new file mode 100644 index 000000000..7cf23ffa8 Binary files /dev/null and b/linux/ecosystem/php/php8.2/addons/multiarch-support_2.28_amd64.deb differ diff --git a/linux/ecosystem/php/php8.2/docker-compose.yml b/linux/ecosystem/php/php8.2/docker-compose.yml new file mode 100644 index 000000000..c2f8be4ab --- /dev/null +++ b/linux/ecosystem/php/php8.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php8.2" + build: + context: . diff --git a/linux/ecosystem/php/php8.2/usr/lib/php/20220829/cassandra.so b/linux/ecosystem/php/php8.2/usr/lib/php/20220829/cassandra.so new file mode 100644 index 000000000..2e94ad443 Binary files /dev/null and b/linux/ecosystem/php/php8.2/usr/lib/php/20220829/cassandra.so differ diff --git a/linux/ecosystem/php/php8.2/usr/lib/php/20220829/phpBolt-extension-1.0.4-php82.so b/linux/ecosystem/php/php8.2/usr/lib/php/20220829/phpBolt-extension-1.0.4-php82.so new file mode 100644 index 000000000..ed75ab215 Binary files /dev/null and b/linux/ecosystem/php/php8.2/usr/lib/php/20220829/phpBolt-extension-1.0.4-php82.so differ diff --git a/linux/ecosystem/php/php8.3/Dockerfile b/linux/ecosystem/php/php8.3/Dockerfile new file mode 100644 index 000000000..40d55e822 --- /dev/null +++ b/linux/ecosystem/php/php8.3/Dockerfile @@ -0,0 +1,201 @@ +FROM epicmorg/debian:bullseye +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_VER=8.3 +ARG PHP_MODULE_VER=20220830 +ARG PHP_MODULE_PATH=/usr/lib/php/${PHP_MODULE_VER} +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini +ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini + +################################################################## +# Installing PHP8 +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg && \ + sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' + +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + libgmp-dev \ + php8.3 \ + php8.3-common \ + php8.3-dev \ + php8.3-ldap \ + php8.3-soap \ + php8.3-mysql \ + php8.3-curl \ + php8.3-gd \ + php8.3-intl \ + php8.3-zip \ + php8.3-bcmath \ + php8.3-fpm \ + php8.3-imap \ + php8.3-pspell \ + php8.3-sqlite3 \ + php8.3-pgsql \ + php8.3-tidy \ + php8.3-xml \ + php8.3-mbstring \ + php8.3-gettext \ + php8.3-cli \ + php8.3-common \ + php8.3-cgi \ + php8.3-readline \ + php8.3-enchant \ + smbclient libsmbclient \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php8.3 && \ + pear update-channels && \ + pear upgrade && \ + pecl channel-update pecl.php.net && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +############################################################################## +# Cassandra CPP Support Install +############################################################################## +COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb +RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \ + https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb + +RUN cd /tmp/cassandra-php-driver && \ + dpkg -i ./multiarch-support_2.28_amd64.deb && \ + dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \ + dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \ + dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb + +############################################################################## +# Cassandra PHP Drivers Install +############################################################################## +#RUN pecl install cassandra && \ +#COPY usr/lib/php/20220829/cassandra.so ${PHP_MODULE_PATH}/cassandra.so +#RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ +# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ +## ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing timezonedb addon +################################################################## +RUN pecl install timezonedb && \ +# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################# +#ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +#RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ +# cp /tmp/ioncube/ioncube_loader_lin_8.3.so ${PHP_MODULE_PATH} && \ +### echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.3.so" >> ${PHP_DIR}/apache2/php.ini && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.3.so" >> ${PHP_DIR}/cgi/php.ini && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.3.so" >> ${PHP_DIR}/cli/php.ini && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_8.3.so" >> ${PHP_DIR}/fpm/php.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing Bolt addon +################################################################## +#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.4.zip /tmp/phpBolt.zip +#COPY usr/lib/php/20210902/phpBolt-extension-1.0.4-php83.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php83.so +##RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php83.so" >> ${PHP_DIR}/apache2/php.ini && \ +#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php83.so" >> ${PHP_DIR}/cgi/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php83.so" >> ${PHP_DIR}/cli/php.ini && \ +# echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.4-php83.so" >> ${PHP_DIR}/fpm/php.ini && \ +# php -m && \ +# php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.3/Makefile b/linux/ecosystem/php/php8.3/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/php/php8.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php8.3/README.md b/linux/ecosystem/php/php8.3/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/php/php8.3/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/php/php8.3/addons/multiarch-support_2.28_amd64.deb new file mode 100644 index 000000000..7cf23ffa8 Binary files /dev/null and b/linux/ecosystem/php/php8.3/addons/multiarch-support_2.28_amd64.deb differ diff --git a/linux/ecosystem/php/php8.3/docker-compose.yml b/linux/ecosystem/php/php8.3/docker-compose.yml new file mode 100644 index 000000000..223a3f988 --- /dev/null +++ b/linux/ecosystem/php/php8.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php8.3" + build: + context: . diff --git a/linux/ecosystem/testrail/latest/ad/Dockerfile b/linux/ecosystem/testrail/5.4.1.3669/ad/Dockerfile similarity index 94% rename from linux/ecosystem/testrail/latest/ad/Dockerfile rename to linux/ecosystem/testrail/5.4.1.3669/ad/Dockerfile index 589c7469d..1291f905a 100644 --- a/linux/ecosystem/testrail/latest/ad/Dockerfile +++ b/linux/ecosystem/testrail/5.4.1.3669/ad/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/testrail:latest +FROM epicmorg/testrail:5.4.1.3669 ENV TESTRAIL_PLUGIN_VERSION=1.4 ENV TESTRAIL_PLUGIN_NAME=ad diff --git a/linux/ecosystem/testrail/5.4.1.3669/ad/Makefile b/linux/ecosystem/testrail/5.4.1.3669/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.4.1.3669/ad/README.md b/linux/ecosystem/testrail/5.4.1.3669/ad/README.md new file mode 100644 index 000000000..717a45128 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.4.1.3669 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/latest/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.4.1.3669/ad/docker-compose.yml similarity index 54% rename from linux/ecosystem/testrail/latest/ldap/docker-compose.yml rename to linux/ecosystem/testrail/5.4.1.3669/ad/docker-compose.yml index f3039e286..304fcba93 100644 --- a/linux/ecosystem/testrail/latest/ldap/docker-compose.yml +++ b/linux/ecosystem/testrail/5.4.1.3669/ad/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/testrail:auth-ldap" + image: "epicmorg/testrail:auth-ad-5.4.1.3669" build: context: . diff --git a/linux/ecosystem/testrail/5.4.1.3669/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.4.1.3669/ad/docker-entrypoint.sh new file mode 100755 index 000000000..b38b7712c --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.4.1.3669 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/latest/ldap/Dockerfile b/linux/ecosystem/testrail/5.4.1.3669/ldap/Dockerfile similarity index 94% rename from linux/ecosystem/testrail/latest/ldap/Dockerfile rename to linux/ecosystem/testrail/5.4.1.3669/ldap/Dockerfile index 62fb14b9f..d9c161808 100644 --- a/linux/ecosystem/testrail/latest/ldap/Dockerfile +++ b/linux/ecosystem/testrail/5.4.1.3669/ldap/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/testrail:latest +FROM epicmorg/testrail:5.4.1.3669 ENV TESTRAIL_PLUGIN_VERSION=1.4 ENV TESTRAIL_PLUGIN_NAME=ldap diff --git a/linux/ecosystem/testrail/5.4.1.3669/ldap/Makefile b/linux/ecosystem/testrail/5.4.1.3669/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.4.1.3669/ldap/README.md b/linux/ecosystem/testrail/5.4.1.3669/ldap/README.md new file mode 100644 index 000000000..d0b664964 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.4.1.3669 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.4.1.3669/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.4.1.3669/ldap/docker-compose.yml new file mode 100644 index 000000000..da8542a52 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.4.1.3669" + build: + context: . diff --git a/linux/ecosystem/testrail/5.4.1.3669/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.4.1.3669/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..098d9fc0a --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.4.1.3669 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/.env b/linux/ecosystem/testrail/5.4.1.3669/main/.env new file mode 100644 index 000000000..6c3773abf --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.4.1.3669 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/Dockerfile b/linux/ecosystem/testrail/5.4.1.3669/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/Makefile b/linux/ecosystem/testrail/5.4.1.3669/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/README.md b/linux/ecosystem/testrail/5.4.1.3669/main/README.md new file mode 100644 index 000000000..e03db99b0 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.4.1.3669 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/apache_testrail.conf b/linux/ecosystem/testrail/5.4.1.3669/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/docker-compose.yml b/linux/ecosystem/testrail/5.4.1.3669/main/docker-compose.yml new file mode 100644 index 000000000..50904ac88 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.4.1.3669" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.4.1.3669/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.4.1.3669/main/docker-entrypoint.sh new file mode 100755 index 000000000..7ed7a6c71 --- /dev/null +++ b/linux/ecosystem/testrail/5.4.1.3669/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.4.1.3669" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3727/ad/Dockerfile b/linux/ecosystem/testrail/5.5.0.3727/ad/Dockerfile new file mode 100644 index 000000000..fca84165f --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.0.3727 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.0.3727/ad/Makefile b/linux/ecosystem/testrail/5.5.0.3727/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3727/ad/README.md b/linux/ecosystem/testrail/5.5.0.3727/ad/README.md new file mode 100644 index 000000000..554f7312a --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.5.0.3727 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3727/ad/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3727/ad/docker-compose.yml new file mode 100644 index 000000000..f09530e64 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.5.0.3727" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.0.3727/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3727/ad/docker-entrypoint.sh new file mode 100755 index 000000000..8e62fdb8e --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3727 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3727/ldap/Dockerfile b/linux/ecosystem/testrail/5.5.0.3727/ldap/Dockerfile new file mode 100644 index 000000000..8ce0b611c --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.0.3727 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.0.3727/ldap/Makefile b/linux/ecosystem/testrail/5.5.0.3727/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3727/ldap/README.md b/linux/ecosystem/testrail/5.5.0.3727/ldap/README.md new file mode 100644 index 000000000..40cd83093 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.5.0.3727 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3727/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3727/ldap/docker-compose.yml new file mode 100644 index 000000000..9eea6c435 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.5.0.3727" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.0.3727/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3727/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..e416cd623 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3727 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/.env b/linux/ecosystem/testrail/5.5.0.3727/main/.env new file mode 100644 index 000000000..b8378d085 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.5.0.3727 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/Dockerfile b/linux/ecosystem/testrail/5.5.0.3727/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/Makefile b/linux/ecosystem/testrail/5.5.0.3727/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/README.md b/linux/ecosystem/testrail/5.5.0.3727/main/README.md new file mode 100644 index 000000000..f1681b365 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.5.0.3727 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/apache_testrail.conf b/linux/ecosystem/testrail/5.5.0.3727/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3727/main/docker-compose.yml new file mode 100644 index 000000000..cf40b3ec8 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.5.0.3727" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.0.3727/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3727/main/docker-entrypoint.sh new file mode 100755 index 000000000..f197e15f7 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3727/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3727" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3731/ad/Dockerfile b/linux/ecosystem/testrail/5.5.0.3731/ad/Dockerfile new file mode 100644 index 000000000..64419440f --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.0.3731 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.0.3731/ad/Makefile b/linux/ecosystem/testrail/5.5.0.3731/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3731/ad/README.md b/linux/ecosystem/testrail/5.5.0.3731/ad/README.md new file mode 100644 index 000000000..1c7aa98a3 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.5.0.3731 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3731/ad/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3731/ad/docker-compose.yml new file mode 100644 index 000000000..3178bf0b9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.5.0.3731" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.0.3731/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3731/ad/docker-entrypoint.sh new file mode 100755 index 000000000..41e756a7e --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3731 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3731/ldap/Dockerfile b/linux/ecosystem/testrail/5.5.0.3731/ldap/Dockerfile new file mode 100644 index 000000000..e14212918 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.0.3731 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.0.3731/ldap/Makefile b/linux/ecosystem/testrail/5.5.0.3731/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3731/ldap/README.md b/linux/ecosystem/testrail/5.5.0.3731/ldap/README.md new file mode 100644 index 000000000..48f61316c --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.5.0.3731 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3731/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3731/ldap/docker-compose.yml new file mode 100644 index 000000000..1d393a5f5 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.5.0.3731" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.0.3731/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3731/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..faf37511e --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3731 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/.env b/linux/ecosystem/testrail/5.5.0.3731/main/.env new file mode 100644 index 000000000..1ebf1641b --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.5.0.3731 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/Dockerfile b/linux/ecosystem/testrail/5.5.0.3731/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/Makefile b/linux/ecosystem/testrail/5.5.0.3731/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/README.md b/linux/ecosystem/testrail/5.5.0.3731/main/README.md new file mode 100644 index 000000000..08fb8840a --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.5.0.3731 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/apache_testrail.conf b/linux/ecosystem/testrail/5.5.0.3731/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3731/main/docker-compose.yml new file mode 100644 index 000000000..2c266ef24 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.5.0.3731" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.0.3731/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3731/main/docker-entrypoint.sh new file mode 100755 index 000000000..4ff710020 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3731/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3731" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3735/ad/Dockerfile b/linux/ecosystem/testrail/5.5.0.3735/ad/Dockerfile new file mode 100644 index 000000000..b3abcfb4d --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.0.3735 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.0.3735/ad/Makefile b/linux/ecosystem/testrail/5.5.0.3735/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3735/ad/README.md b/linux/ecosystem/testrail/5.5.0.3735/ad/README.md new file mode 100644 index 000000000..0ec2dbaf5 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.5.0.3735 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3735/ad/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3735/ad/docker-compose.yml new file mode 100644 index 000000000..44d7a635e --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.5.0.3735" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.0.3735/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3735/ad/docker-entrypoint.sh new file mode 100755 index 000000000..d0587d22d --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3735 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3735/ldap/Dockerfile b/linux/ecosystem/testrail/5.5.0.3735/ldap/Dockerfile new file mode 100644 index 000000000..567a86fc1 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.0.3735 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.0.3735/ldap/Makefile b/linux/ecosystem/testrail/5.5.0.3735/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3735/ldap/README.md b/linux/ecosystem/testrail/5.5.0.3735/ldap/README.md new file mode 100644 index 000000000..369594cd5 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.5.0.3735 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3735/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3735/ldap/docker-compose.yml new file mode 100644 index 000000000..562d91f58 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.5.0.3735" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.0.3735/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3735/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..87f21c00d --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3735 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/.env b/linux/ecosystem/testrail/5.5.0.3735/main/.env new file mode 100644 index 000000000..3366092ed --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.5.0.3735 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/Dockerfile b/linux/ecosystem/testrail/5.5.0.3735/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/Makefile b/linux/ecosystem/testrail/5.5.0.3735/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/README.md b/linux/ecosystem/testrail/5.5.0.3735/main/README.md new file mode 100644 index 000000000..aa89ae2a9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.5.0.3735 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/apache_testrail.conf b/linux/ecosystem/testrail/5.5.0.3735/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/docker-compose.yml b/linux/ecosystem/testrail/5.5.0.3735/main/docker-compose.yml new file mode 100644 index 000000000..072f5a0a5 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.5.0.3735" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.0.3735/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.0.3735/main/docker-entrypoint.sh new file mode 100755 index 000000000..dc3f6e176 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.0.3735/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.0.3735" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.1.3746/ad/Dockerfile b/linux/ecosystem/testrail/5.5.1.3746/ad/Dockerfile new file mode 100644 index 000000000..e25fd5c28 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.1.3746 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.1.3746/ad/Makefile b/linux/ecosystem/testrail/5.5.1.3746/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.1.3746/ad/README.md b/linux/ecosystem/testrail/5.5.1.3746/ad/README.md new file mode 100644 index 000000000..90399fc79 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.5.1.3746 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.1.3746/ad/docker-compose.yml b/linux/ecosystem/testrail/5.5.1.3746/ad/docker-compose.yml new file mode 100644 index 000000000..3b2f8799a --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.5.1.3746" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.1.3746/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.1.3746/ad/docker-entrypoint.sh new file mode 100755 index 000000000..91b503323 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.1.3746 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.1.3746/ldap/Dockerfile b/linux/ecosystem/testrail/5.5.1.3746/ldap/Dockerfile new file mode 100644 index 000000000..28c3c061a --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.5.1.3746 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.5.1.3746/ldap/Makefile b/linux/ecosystem/testrail/5.5.1.3746/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.1.3746/ldap/README.md b/linux/ecosystem/testrail/5.5.1.3746/ldap/README.md new file mode 100644 index 000000000..117b23377 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.5.1.3746 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.1.3746/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.5.1.3746/ldap/docker-compose.yml new file mode 100644 index 000000000..2af1f1841 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.5.1.3746" + build: + context: . diff --git a/linux/ecosystem/testrail/5.5.1.3746/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.1.3746/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..321d1eec7 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.1.3746 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/.env b/linux/ecosystem/testrail/5.5.1.3746/main/.env new file mode 100644 index 000000000..4192f8dad --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.5.1.3746 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/Dockerfile b/linux/ecosystem/testrail/5.5.1.3746/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/Makefile b/linux/ecosystem/testrail/5.5.1.3746/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/README.md b/linux/ecosystem/testrail/5.5.1.3746/main/README.md new file mode 100644 index 000000000..93df0f19b --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.5.1.3746 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/apache_testrail.conf b/linux/ecosystem/testrail/5.5.1.3746/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/docker-compose.yml b/linux/ecosystem/testrail/5.5.1.3746/main/docker-compose.yml new file mode 100644 index 000000000..d4b08f4ef --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.5.1.3746" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.5.1.3746/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.5.1.3746/main/docker-entrypoint.sh new file mode 100755 index 000000000..bc40dd813 --- /dev/null +++ b/linux/ecosystem/testrail/5.5.1.3746/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.5.1.3746" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3853/ad/Dockerfile b/linux/ecosystem/testrail/5.6.0.3853/ad/Dockerfile new file mode 100644 index 000000000..5821ccd00 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3853 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3853/ad/Makefile b/linux/ecosystem/testrail/5.6.0.3853/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3853/ad/README.md b/linux/ecosystem/testrail/5.6.0.3853/ad/README.md new file mode 100644 index 000000000..059ee3fa7 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.6.0.3853 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3853/ad/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3853/ad/docker-compose.yml new file mode 100644 index 000000000..04ba64e1f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.6.0.3853" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3853/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3853/ad/docker-entrypoint.sh new file mode 100755 index 000000000..044cc5abd --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3853 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3853/ldap/Dockerfile b/linux/ecosystem/testrail/5.6.0.3853/ldap/Dockerfile new file mode 100644 index 000000000..67f713bb5 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3853 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3853/ldap/Makefile b/linux/ecosystem/testrail/5.6.0.3853/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3853/ldap/README.md b/linux/ecosystem/testrail/5.6.0.3853/ldap/README.md new file mode 100644 index 000000000..7b85ee6dd --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.6.0.3853 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3853/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3853/ldap/docker-compose.yml new file mode 100644 index 000000000..a8cfaf98c --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.6.0.3853" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3853/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3853/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..349d93c6f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3853 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/.env b/linux/ecosystem/testrail/5.6.0.3853/main/.env new file mode 100644 index 000000000..3e27e5173 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.6.0.3853 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/Dockerfile b/linux/ecosystem/testrail/5.6.0.3853/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/Makefile b/linux/ecosystem/testrail/5.6.0.3853/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/README.md b/linux/ecosystem/testrail/5.6.0.3853/main/README.md new file mode 100644 index 000000000..0f76516fd --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.6.0.3853 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/apache_testrail.conf b/linux/ecosystem/testrail/5.6.0.3853/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3853/main/docker-compose.yml new file mode 100644 index 000000000..93482829b --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.6.0.3853" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3853/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3853/main/docker-entrypoint.sh new file mode 100755 index 000000000..3de96faa2 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3853/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3853" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3856/ad/Dockerfile b/linux/ecosystem/testrail/5.6.0.3856/ad/Dockerfile new file mode 100644 index 000000000..a56551d08 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3856 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3856/ad/Makefile b/linux/ecosystem/testrail/5.6.0.3856/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3856/ad/README.md b/linux/ecosystem/testrail/5.6.0.3856/ad/README.md new file mode 100644 index 000000000..bdbf08757 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.6.0.3856 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3856/ad/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3856/ad/docker-compose.yml new file mode 100644 index 000000000..e951b53b5 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.6.0.3856" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3856/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3856/ad/docker-entrypoint.sh new file mode 100755 index 000000000..73ef2d7a8 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3856 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3856/ldap/Dockerfile b/linux/ecosystem/testrail/5.6.0.3856/ldap/Dockerfile new file mode 100644 index 000000000..9d894f031 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3856 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3856/ldap/Makefile b/linux/ecosystem/testrail/5.6.0.3856/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3856/ldap/README.md b/linux/ecosystem/testrail/5.6.0.3856/ldap/README.md new file mode 100644 index 000000000..c0239c660 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.6.0.3856 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3856/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3856/ldap/docker-compose.yml new file mode 100644 index 000000000..ff3e54c99 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.6.0.3856" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3856/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3856/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..a78d1ece7 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3856 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/.env b/linux/ecosystem/testrail/5.6.0.3856/main/.env new file mode 100644 index 000000000..e50b30edd --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.6.0.3856 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/Dockerfile b/linux/ecosystem/testrail/5.6.0.3856/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/Makefile b/linux/ecosystem/testrail/5.6.0.3856/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/README.md b/linux/ecosystem/testrail/5.6.0.3856/main/README.md new file mode 100644 index 000000000..7c1a6a386 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.6.0.3856 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/apache_testrail.conf b/linux/ecosystem/testrail/5.6.0.3856/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3856/main/docker-compose.yml new file mode 100644 index 000000000..c1228646c --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.6.0.3856" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3856/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3856/main/docker-entrypoint.sh new file mode 100755 index 000000000..f526c7e3a --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3856/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3856" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3861/ad/Dockerfile b/linux/ecosystem/testrail/5.6.0.3861/ad/Dockerfile new file mode 100644 index 000000000..fc0673fe3 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3861 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3861/ad/Makefile b/linux/ecosystem/testrail/5.6.0.3861/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3861/ad/README.md b/linux/ecosystem/testrail/5.6.0.3861/ad/README.md new file mode 100644 index 000000000..9ecf12e9b --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.6.0.3861 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3861/ad/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3861/ad/docker-compose.yml new file mode 100644 index 000000000..126ae8d73 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.6.0.3861" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3861/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3861/ad/docker-entrypoint.sh new file mode 100755 index 000000000..83e4d4fd4 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3861 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3861/ldap/Dockerfile b/linux/ecosystem/testrail/5.6.0.3861/ldap/Dockerfile new file mode 100644 index 000000000..70c64a26e --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3861 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3861/ldap/Makefile b/linux/ecosystem/testrail/5.6.0.3861/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3861/ldap/README.md b/linux/ecosystem/testrail/5.6.0.3861/ldap/README.md new file mode 100644 index 000000000..4dbebfeb5 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.6.0.3861 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3861/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3861/ldap/docker-compose.yml new file mode 100644 index 000000000..ee7473fca --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.6.0.3861" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3861/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3861/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..1a879664b --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3861 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/.env b/linux/ecosystem/testrail/5.6.0.3861/main/.env new file mode 100644 index 000000000..7718e324d --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.6.0.3861 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/Dockerfile b/linux/ecosystem/testrail/5.6.0.3861/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/Makefile b/linux/ecosystem/testrail/5.6.0.3861/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/README.md b/linux/ecosystem/testrail/5.6.0.3861/main/README.md new file mode 100644 index 000000000..a5582c2b6 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.6.0.3861 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/apache_testrail.conf b/linux/ecosystem/testrail/5.6.0.3861/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3861/main/docker-compose.yml new file mode 100644 index 000000000..1268df15e --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.6.0.3861" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3861/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3861/main/docker-entrypoint.sh new file mode 100755 index 000000000..84e7b1aaf --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3861/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3861" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3862/ad/Dockerfile b/linux/ecosystem/testrail/5.6.0.3862/ad/Dockerfile new file mode 100644 index 000000000..db82288e1 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3862 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3862/ad/Makefile b/linux/ecosystem/testrail/5.6.0.3862/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3862/ad/README.md b/linux/ecosystem/testrail/5.6.0.3862/ad/README.md new file mode 100644 index 000000000..205ec3635 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.6.0.3862 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3862/ad/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3862/ad/docker-compose.yml new file mode 100644 index 000000000..70b047fcf --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.6.0.3862" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3862/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3862/ad/docker-entrypoint.sh new file mode 100755 index 000000000..f88ca1fc2 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3862 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3862/ldap/Dockerfile b/linux/ecosystem/testrail/5.6.0.3862/ldap/Dockerfile new file mode 100644 index 000000000..f884f6323 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3862 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3862/ldap/Makefile b/linux/ecosystem/testrail/5.6.0.3862/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3862/ldap/README.md b/linux/ecosystem/testrail/5.6.0.3862/ldap/README.md new file mode 100644 index 000000000..5217d2f0d --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.6.0.3862 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3862/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3862/ldap/docker-compose.yml new file mode 100644 index 000000000..2cfa64dc8 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.6.0.3862" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3862/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3862/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..003d4caf9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3862 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/.env b/linux/ecosystem/testrail/5.6.0.3862/main/.env new file mode 100644 index 000000000..7638fae31 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.6.0.3862 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/Dockerfile b/linux/ecosystem/testrail/5.6.0.3862/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/Makefile b/linux/ecosystem/testrail/5.6.0.3862/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/README.md b/linux/ecosystem/testrail/5.6.0.3862/main/README.md new file mode 100644 index 000000000..31cef947a --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.6.0.3862 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/apache_testrail.conf b/linux/ecosystem/testrail/5.6.0.3862/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3862/main/docker-compose.yml new file mode 100644 index 000000000..62e1bc94c --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.6.0.3862" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3862/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3862/main/docker-entrypoint.sh new file mode 100755 index 000000000..13b61ba1a --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3862/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3862" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3865/ad/Dockerfile b/linux/ecosystem/testrail/5.6.0.3865/ad/Dockerfile new file mode 100644 index 000000000..c115fbb49 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3865 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3865/ad/Makefile b/linux/ecosystem/testrail/5.6.0.3865/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3865/ad/README.md b/linux/ecosystem/testrail/5.6.0.3865/ad/README.md new file mode 100644 index 000000000..c6bb1d8c0 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.6.0.3865 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3865/ad/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3865/ad/docker-compose.yml new file mode 100644 index 000000000..31080538d --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.6.0.3865" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3865/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3865/ad/docker-entrypoint.sh new file mode 100755 index 000000000..a0b592905 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3865 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3865/ldap/Dockerfile b/linux/ecosystem/testrail/5.6.0.3865/ldap/Dockerfile new file mode 100644 index 000000000..5bd653f50 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.6.0.3865 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.6.0.3865/ldap/Makefile b/linux/ecosystem/testrail/5.6.0.3865/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3865/ldap/README.md b/linux/ecosystem/testrail/5.6.0.3865/ldap/README.md new file mode 100644 index 000000000..bf25e5246 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.6.0.3865 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3865/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3865/ldap/docker-compose.yml new file mode 100644 index 000000000..af1d78ed4 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.6.0.3865" + build: + context: . diff --git a/linux/ecosystem/testrail/5.6.0.3865/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3865/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..c6307dee9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3865 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/.env b/linux/ecosystem/testrail/5.6.0.3865/main/.env new file mode 100644 index 000000000..f94b92323 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.6.0.3865 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/Dockerfile b/linux/ecosystem/testrail/5.6.0.3865/main/Dockerfile new file mode 100644 index 000000000..5e258575f --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.0 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/Makefile b/linux/ecosystem/testrail/5.6.0.3865/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/README.md b/linux/ecosystem/testrail/5.6.0.3865/main/README.md new file mode 100644 index 000000000..eb4df9a5c --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.0` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.6.0.3865 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/apache_testrail.conf b/linux/ecosystem/testrail/5.6.0.3865/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/docker-compose.yml b/linux/ecosystem/testrail/5.6.0.3865/main/docker-compose.yml new file mode 100644 index 000000000..398e8565e --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.6.0.3865" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.6.0.3865/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.6.0.3865/main/docker-entrypoint.sh new file mode 100755 index 000000000..dec34af66 --- /dev/null +++ b/linux/ecosystem/testrail/5.6.0.3865/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.6.0.3865" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3938/ad/Dockerfile b/linux/ecosystem/testrail/5.7.0.3938/ad/Dockerfile new file mode 100644 index 000000000..a62a50d84 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.0.3938 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.0.3938/ad/Makefile b/linux/ecosystem/testrail/5.7.0.3938/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3938/ad/README.md b/linux/ecosystem/testrail/5.7.0.3938/ad/README.md new file mode 100644 index 000000000..bffe50787 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.7.0.3938 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3938/ad/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3938/ad/docker-compose.yml new file mode 100644 index 000000000..870c5d79e --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.7.0.3938" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.0.3938/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3938/ad/docker-entrypoint.sh new file mode 100755 index 000000000..b251904db --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3938 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3938/ldap/Dockerfile b/linux/ecosystem/testrail/5.7.0.3938/ldap/Dockerfile new file mode 100644 index 000000000..9f18ec758 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.0.3938 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.0.3938/ldap/Makefile b/linux/ecosystem/testrail/5.7.0.3938/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3938/ldap/README.md b/linux/ecosystem/testrail/5.7.0.3938/ldap/README.md new file mode 100644 index 000000000..72a7be689 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.7.0.3938 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3938/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3938/ldap/docker-compose.yml new file mode 100644 index 000000000..b4cfb4bc3 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.7.0.3938" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.0.3938/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3938/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..2effff5bb --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3938 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/.env b/linux/ecosystem/testrail/5.7.0.3938/main/.env new file mode 100644 index 000000000..9050007cc --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.7.0.3938 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/Dockerfile b/linux/ecosystem/testrail/5.7.0.3938/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/Makefile b/linux/ecosystem/testrail/5.7.0.3938/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/README.md b/linux/ecosystem/testrail/5.7.0.3938/main/README.md new file mode 100644 index 000000000..824f71ab8 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.7.0.3938 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/apache_testrail.conf b/linux/ecosystem/testrail/5.7.0.3938/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3938/main/docker-compose.yml new file mode 100644 index 000000000..67bfabbfc --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.7.0.3938" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.0.3938/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3938/main/docker-entrypoint.sh new file mode 100755 index 000000000..b023dc8cb --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3938/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3938" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3942/ad/Dockerfile b/linux/ecosystem/testrail/5.7.0.3942/ad/Dockerfile new file mode 100644 index 000000000..6f3347283 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.0.3942 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.0.3942/ad/Makefile b/linux/ecosystem/testrail/5.7.0.3942/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3942/ad/README.md b/linux/ecosystem/testrail/5.7.0.3942/ad/README.md new file mode 100644 index 000000000..16a55d5f3 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.7.0.3942 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3942/ad/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3942/ad/docker-compose.yml new file mode 100644 index 000000000..a04e9dcc1 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.7.0.3942" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.0.3942/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3942/ad/docker-entrypoint.sh new file mode 100755 index 000000000..14c2272b9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3942 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3942/ldap/Dockerfile b/linux/ecosystem/testrail/5.7.0.3942/ldap/Dockerfile new file mode 100644 index 000000000..3ba6e254f --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.0.3942 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.0.3942/ldap/Makefile b/linux/ecosystem/testrail/5.7.0.3942/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3942/ldap/README.md b/linux/ecosystem/testrail/5.7.0.3942/ldap/README.md new file mode 100644 index 000000000..d4667fdcb --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.7.0.3942 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3942/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3942/ldap/docker-compose.yml new file mode 100644 index 000000000..e9d888c3d --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.7.0.3942" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.0.3942/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3942/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..11b60fc0b --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3942 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/.env b/linux/ecosystem/testrail/5.7.0.3942/main/.env new file mode 100644 index 000000000..bb1a76810 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.7.0.3942 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/Dockerfile b/linux/ecosystem/testrail/5.7.0.3942/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/Makefile b/linux/ecosystem/testrail/5.7.0.3942/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/README.md b/linux/ecosystem/testrail/5.7.0.3942/main/README.md new file mode 100644 index 000000000..9d4b8fe08 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.7.0.3942 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/apache_testrail.conf b/linux/ecosystem/testrail/5.7.0.3942/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3942/main/docker-compose.yml new file mode 100644 index 000000000..e3ca73138 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.7.0.3942" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.0.3942/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3942/main/docker-entrypoint.sh new file mode 100755 index 000000000..b3aa045f7 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3942/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3942" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3951/ad/Dockerfile b/linux/ecosystem/testrail/5.7.0.3951/ad/Dockerfile new file mode 100644 index 000000000..207cf4151 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.0.3951 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.0.3951/ad/Makefile b/linux/ecosystem/testrail/5.7.0.3951/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3951/ad/README.md b/linux/ecosystem/testrail/5.7.0.3951/ad/README.md new file mode 100644 index 000000000..8e07ec420 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.7.0.3951 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3951/ad/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3951/ad/docker-compose.yml new file mode 100644 index 000000000..8b3480bd0 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.7.0.3951" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.0.3951/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3951/ad/docker-entrypoint.sh new file mode 100755 index 000000000..e172ca743 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3951 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3951/ldap/Dockerfile b/linux/ecosystem/testrail/5.7.0.3951/ldap/Dockerfile new file mode 100644 index 000000000..3d8475742 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.0.3951 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.0.3951/ldap/Makefile b/linux/ecosystem/testrail/5.7.0.3951/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3951/ldap/README.md b/linux/ecosystem/testrail/5.7.0.3951/ldap/README.md new file mode 100644 index 000000000..3af21c568 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.7.0.3951 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3951/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3951/ldap/docker-compose.yml new file mode 100644 index 000000000..4129ae4ee --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.7.0.3951" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.0.3951/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3951/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..1163436e4 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3951 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/.env b/linux/ecosystem/testrail/5.7.0.3951/main/.env new file mode 100644 index 000000000..294b15dd9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.7.0.3951 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/Dockerfile b/linux/ecosystem/testrail/5.7.0.3951/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/Makefile b/linux/ecosystem/testrail/5.7.0.3951/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/README.md b/linux/ecosystem/testrail/5.7.0.3951/main/README.md new file mode 100644 index 000000000..3fe022c35 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.7.0.3951 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/apache_testrail.conf b/linux/ecosystem/testrail/5.7.0.3951/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/docker-compose.yml b/linux/ecosystem/testrail/5.7.0.3951/main/docker-compose.yml new file mode 100644 index 000000000..b20d3670e --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.7.0.3951" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.0.3951/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.0.3951/main/docker-entrypoint.sh new file mode 100755 index 000000000..20d5f2060 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.0.3951/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.0.3951" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.1.4026/ad/Dockerfile b/linux/ecosystem/testrail/5.7.1.4026/ad/Dockerfile new file mode 100644 index 000000000..5b8eced92 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.1.4026 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.1.4026/ad/Makefile b/linux/ecosystem/testrail/5.7.1.4026/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.1.4026/ad/README.md b/linux/ecosystem/testrail/5.7.1.4026/ad/README.md new file mode 100644 index 000000000..bdbdeb635 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.7.1.4026 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.1.4026/ad/docker-compose.yml b/linux/ecosystem/testrail/5.7.1.4026/ad/docker-compose.yml new file mode 100644 index 000000000..896ac86fa --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.7.1.4026" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.1.4026/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.1.4026/ad/docker-entrypoint.sh new file mode 100755 index 000000000..9db5982a5 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.1.4026 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.1.4026/ldap/Dockerfile b/linux/ecosystem/testrail/5.7.1.4026/ldap/Dockerfile new file mode 100644 index 000000000..dd8d5e8b8 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.1.4026 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.1.4026/ldap/Makefile b/linux/ecosystem/testrail/5.7.1.4026/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.1.4026/ldap/README.md b/linux/ecosystem/testrail/5.7.1.4026/ldap/README.md new file mode 100644 index 000000000..238edd354 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.7.1.4026 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.1.4026/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.7.1.4026/ldap/docker-compose.yml new file mode 100644 index 000000000..a31345aec --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.7.1.4026" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.1.4026/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.1.4026/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..c6ba12579 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.1.4026 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/.env b/linux/ecosystem/testrail/5.7.1.4026/main/.env new file mode 100644 index 000000000..63fb5fc63 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.7.1.4026 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/Dockerfile b/linux/ecosystem/testrail/5.7.1.4026/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/Makefile b/linux/ecosystem/testrail/5.7.1.4026/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/README.md b/linux/ecosystem/testrail/5.7.1.4026/main/README.md new file mode 100644 index 000000000..0fe4354a3 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.7.1.4026 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/apache_testrail.conf b/linux/ecosystem/testrail/5.7.1.4026/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/docker-compose.yml b/linux/ecosystem/testrail/5.7.1.4026/main/docker-compose.yml new file mode 100644 index 000000000..c39036f0a --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.7.1.4026" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.1.4026/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.1.4026/main/docker-entrypoint.sh new file mode 100755 index 000000000..ad6682f2c --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4026/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.1.4026" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.1.4028/ad/Dockerfile b/linux/ecosystem/testrail/5.7.1.4028/ad/Dockerfile new file mode 100644 index 000000000..5c5f7f0b4 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.1.4028 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.1.4028/ad/Makefile b/linux/ecosystem/testrail/5.7.1.4028/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.1.4028/ad/README.md b/linux/ecosystem/testrail/5.7.1.4028/ad/README.md new file mode 100644 index 000000000..0b89955df --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:5.7.1.4028 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.1.4028/ad/docker-compose.yml b/linux/ecosystem/testrail/5.7.1.4028/ad/docker-compose.yml new file mode 100644 index 000000000..eec8151e4 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-5.7.1.4028" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.1.4028/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.1.4028/ad/docker-entrypoint.sh new file mode 100755 index 000000000..a9f584eca --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.1.4028 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.1.4028/ldap/Dockerfile b/linux/ecosystem/testrail/5.7.1.4028/ldap/Dockerfile new file mode 100644 index 000000000..e531f264f --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:5.7.1.4028 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/5.7.1.4028/ldap/Makefile b/linux/ecosystem/testrail/5.7.1.4028/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.1.4028/ldap/README.md b/linux/ecosystem/testrail/5.7.1.4028/ldap/README.md new file mode 100644 index 000000000..84ce8d410 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-5.7.1.4028 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.1.4028/ldap/docker-compose.yml b/linux/ecosystem/testrail/5.7.1.4028/ldap/docker-compose.yml new file mode 100644 index 000000000..b954fa5fa --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-5.7.1.4028" + build: + context: . diff --git a/linux/ecosystem/testrail/5.7.1.4028/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.1.4028/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..8b762a618 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.1.4028 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/.env b/linux/ecosystem/testrail/5.7.1.4028/main/.env new file mode 100644 index 000000000..f2cd13337 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=5.7.1.4028 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/Dockerfile b/linux/ecosystem/testrail/5.7.1.4028/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/Makefile b/linux/ecosystem/testrail/5.7.1.4028/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/README.md b/linux/ecosystem/testrail/5.7.1.4028/main/README.md new file mode 100644 index 000000000..2f4de26e0 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:5.7.1.4028 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/apache_testrail.conf b/linux/ecosystem/testrail/5.7.1.4028/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/docker-compose.yml b/linux/ecosystem/testrail/5.7.1.4028/main/docker-compose.yml new file mode 100644 index 000000000..2c82e4fa7 --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:5.7.1.4028" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/5.7.1.4028/main/docker-entrypoint.sh b/linux/ecosystem/testrail/5.7.1.4028/main/docker-entrypoint.sh new file mode 100755 index 000000000..8390243eb --- /dev/null +++ b/linux/ecosystem/testrail/5.7.1.4028/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 5.7.1.4028" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.0.0.4140/ad/Dockerfile b/linux/ecosystem/testrail/6.0.0.4140/ad/Dockerfile new file mode 100644 index 000000000..169766067 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.0.0.4140 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.0.0.4140/ad/Makefile b/linux/ecosystem/testrail/6.0.0.4140/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.0.0.4140/ad/README.md b/linux/ecosystem/testrail/6.0.0.4140/ad/README.md new file mode 100644 index 000000000..8773d93f6 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.0.0.4140 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.0.0.4140/ad/docker-compose.yml b/linux/ecosystem/testrail/6.0.0.4140/ad/docker-compose.yml new file mode 100644 index 000000000..7ca797879 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.0.0.4140" + build: + context: . diff --git a/linux/ecosystem/testrail/6.0.0.4140/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.0.0.4140/ad/docker-entrypoint.sh new file mode 100755 index 000000000..0dbf9b546 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.0.0.4140 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.0.0.4140/ldap/Dockerfile b/linux/ecosystem/testrail/6.0.0.4140/ldap/Dockerfile new file mode 100644 index 000000000..7ec4fd230 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.0.0.4140 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.0.0.4140/ldap/Makefile b/linux/ecosystem/testrail/6.0.0.4140/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.0.0.4140/ldap/README.md b/linux/ecosystem/testrail/6.0.0.4140/ldap/README.md new file mode 100644 index 000000000..ddc49d9b6 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.0.0.4140 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.0.0.4140/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.0.0.4140/ldap/docker-compose.yml new file mode 100644 index 000000000..2dae62bf3 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.0.0.4140" + build: + context: . diff --git a/linux/ecosystem/testrail/6.0.0.4140/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.0.0.4140/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..647e21f11 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.0.0.4140 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/.env b/linux/ecosystem/testrail/6.0.0.4140/main/.env new file mode 100644 index 000000000..3af7298fe --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.0.0.4140 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/Dockerfile b/linux/ecosystem/testrail/6.0.0.4140/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/Makefile b/linux/ecosystem/testrail/6.0.0.4140/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/README.md b/linux/ecosystem/testrail/6.0.0.4140/main/README.md new file mode 100644 index 000000000..f3b84c7fd --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.0.0.4140 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/apache_testrail.conf b/linux/ecosystem/testrail/6.0.0.4140/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/docker-compose.yml b/linux/ecosystem/testrail/6.0.0.4140/main/docker-compose.yml new file mode 100644 index 000000000..49732e017 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.0.0.4140" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.0.0.4140/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.0.0.4140/main/docker-entrypoint.sh new file mode 100755 index 000000000..b144b0575 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.0.4140/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.0.0.4140" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.0.1.4163/ad/Dockerfile b/linux/ecosystem/testrail/6.0.1.4163/ad/Dockerfile new file mode 100644 index 000000000..8b28b1a86 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.0.1.4163 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.0.1.4163/ad/Makefile b/linux/ecosystem/testrail/6.0.1.4163/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.0.1.4163/ad/README.md b/linux/ecosystem/testrail/6.0.1.4163/ad/README.md new file mode 100644 index 000000000..b24281c6d --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.0.1.4163 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.0.1.4163/ad/docker-compose.yml b/linux/ecosystem/testrail/6.0.1.4163/ad/docker-compose.yml new file mode 100644 index 000000000..54361f7d6 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.0.1.4163" + build: + context: . diff --git a/linux/ecosystem/testrail/6.0.1.4163/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.0.1.4163/ad/docker-entrypoint.sh new file mode 100755 index 000000000..e4e4a0397 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.0.1.4163 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.0.1.4163/ldap/Dockerfile b/linux/ecosystem/testrail/6.0.1.4163/ldap/Dockerfile new file mode 100644 index 000000000..2c975b6d5 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.0.1.4163 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.0.1.4163/ldap/Makefile b/linux/ecosystem/testrail/6.0.1.4163/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.0.1.4163/ldap/README.md b/linux/ecosystem/testrail/6.0.1.4163/ldap/README.md new file mode 100644 index 000000000..4e88871cc --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.0.1.4163 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.0.1.4163/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.0.1.4163/ldap/docker-compose.yml new file mode 100644 index 000000000..917ffff6c --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.0.1.4163" + build: + context: . diff --git a/linux/ecosystem/testrail/6.0.1.4163/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.0.1.4163/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..9db55195b --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.0.1.4163 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/.env b/linux/ecosystem/testrail/6.0.1.4163/main/.env new file mode 100644 index 000000000..8d3df5803 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.0.1.4163 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/Dockerfile b/linux/ecosystem/testrail/6.0.1.4163/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/Makefile b/linux/ecosystem/testrail/6.0.1.4163/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/README.md b/linux/ecosystem/testrail/6.0.1.4163/main/README.md new file mode 100644 index 000000000..9187ded82 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.0.1.4163 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/apache_testrail.conf b/linux/ecosystem/testrail/6.0.1.4163/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/docker-compose.yml b/linux/ecosystem/testrail/6.0.1.4163/main/docker-compose.yml new file mode 100644 index 000000000..f1b3ebe4f --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.0.1.4163" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.0.1.4163/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.0.1.4163/main/docker-entrypoint.sh new file mode 100755 index 000000000..bc33dd9f0 --- /dev/null +++ b/linux/ecosystem/testrail/6.0.1.4163/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.0.1.4163" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.0.4367/ad/Dockerfile b/linux/ecosystem/testrail/6.1.0.4367/ad/Dockerfile new file mode 100644 index 000000000..ba7007345 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.0.4367 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.0.4367/ad/Makefile b/linux/ecosystem/testrail/6.1.0.4367/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.0.4367/ad/README.md b/linux/ecosystem/testrail/6.1.0.4367/ad/README.md new file mode 100644 index 000000000..d7cdb34cc --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.1.0.4367 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.0.4367/ad/docker-compose.yml b/linux/ecosystem/testrail/6.1.0.4367/ad/docker-compose.yml new file mode 100644 index 000000000..c2176d7e2 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.1.0.4367" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.0.4367/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.0.4367/ad/docker-entrypoint.sh new file mode 100755 index 000000000..9852de02b --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.0.4367 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.0.4367/ldap/Dockerfile b/linux/ecosystem/testrail/6.1.0.4367/ldap/Dockerfile new file mode 100644 index 000000000..e35b0a989 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.0.4367 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.0.4367/ldap/Makefile b/linux/ecosystem/testrail/6.1.0.4367/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.0.4367/ldap/README.md b/linux/ecosystem/testrail/6.1.0.4367/ldap/README.md new file mode 100644 index 000000000..00fc14568 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.1.0.4367 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.0.4367/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.1.0.4367/ldap/docker-compose.yml new file mode 100644 index 000000000..ae1361140 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.1.0.4367" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.0.4367/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.0.4367/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..a3c223d6a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.0.4367 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/.env b/linux/ecosystem/testrail/6.1.0.4367/main/.env new file mode 100644 index 000000000..847cff670 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.1.0.4367 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/Dockerfile b/linux/ecosystem/testrail/6.1.0.4367/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/Makefile b/linux/ecosystem/testrail/6.1.0.4367/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/README.md b/linux/ecosystem/testrail/6.1.0.4367/main/README.md new file mode 100644 index 000000000..b561cf052 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.1.0.4367 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/apache_testrail.conf b/linux/ecosystem/testrail/6.1.0.4367/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/docker-compose.yml b/linux/ecosystem/testrail/6.1.0.4367/main/docker-compose.yml new file mode 100644 index 000000000..d549bb3ee --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.1.0.4367" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.0.4367/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.0.4367/main/docker-entrypoint.sh new file mode 100755 index 000000000..aad46b65d --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4367/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.0.4367" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.0.4369/ad/Dockerfile b/linux/ecosystem/testrail/6.1.0.4369/ad/Dockerfile new file mode 100644 index 000000000..1c6870b4c --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.0.4369 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.0.4369/ad/Makefile b/linux/ecosystem/testrail/6.1.0.4369/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.0.4369/ad/README.md b/linux/ecosystem/testrail/6.1.0.4369/ad/README.md new file mode 100644 index 000000000..c245d0c03 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.1.0.4369 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.0.4369/ad/docker-compose.yml b/linux/ecosystem/testrail/6.1.0.4369/ad/docker-compose.yml new file mode 100644 index 000000000..cbe7420f8 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.1.0.4369" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.0.4369/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.0.4369/ad/docker-entrypoint.sh new file mode 100755 index 000000000..2eb2affd9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.0.4369 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.0.4369/ldap/Dockerfile b/linux/ecosystem/testrail/6.1.0.4369/ldap/Dockerfile new file mode 100644 index 000000000..a941039bc --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.0.4369 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.0.4369/ldap/Makefile b/linux/ecosystem/testrail/6.1.0.4369/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.0.4369/ldap/README.md b/linux/ecosystem/testrail/6.1.0.4369/ldap/README.md new file mode 100644 index 000000000..c189c77a6 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.1.0.4369 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.0.4369/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.1.0.4369/ldap/docker-compose.yml new file mode 100644 index 000000000..315d25efd --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.1.0.4369" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.0.4369/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.0.4369/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..32a41216a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.0.4369 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/.env b/linux/ecosystem/testrail/6.1.0.4369/main/.env new file mode 100644 index 000000000..13af635c2 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.1.0.4369 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/Dockerfile b/linux/ecosystem/testrail/6.1.0.4369/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/Makefile b/linux/ecosystem/testrail/6.1.0.4369/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/README.md b/linux/ecosystem/testrail/6.1.0.4369/main/README.md new file mode 100644 index 000000000..625c1ee0e --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.1.0.4369 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/apache_testrail.conf b/linux/ecosystem/testrail/6.1.0.4369/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/docker-compose.yml b/linux/ecosystem/testrail/6.1.0.4369/main/docker-compose.yml new file mode 100644 index 000000000..e83fb3480 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.1.0.4369" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.0.4369/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.0.4369/main/docker-entrypoint.sh new file mode 100755 index 000000000..9e6bdbf73 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.0.4369/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.0.4369" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.1.1020/ad/Dockerfile b/linux/ecosystem/testrail/6.1.1.1020/ad/Dockerfile new file mode 100644 index 000000000..698d8312a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.1.1020 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.1.1020/ad/Makefile b/linux/ecosystem/testrail/6.1.1.1020/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.1.1020/ad/README.md b/linux/ecosystem/testrail/6.1.1.1020/ad/README.md new file mode 100644 index 000000000..02544105c --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.1.1.1020 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.1.1020/ad/docker-compose.yml b/linux/ecosystem/testrail/6.1.1.1020/ad/docker-compose.yml new file mode 100644 index 000000000..0153fb454 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.1.1.1020" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.1.1020/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.1.1020/ad/docker-entrypoint.sh new file mode 100755 index 000000000..5d3d60637 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.1.1020 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.1.1020/ldap/Dockerfile b/linux/ecosystem/testrail/6.1.1.1020/ldap/Dockerfile new file mode 100644 index 000000000..6c875bf78 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.1.1020 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.1.1020/ldap/Makefile b/linux/ecosystem/testrail/6.1.1.1020/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.1.1020/ldap/README.md b/linux/ecosystem/testrail/6.1.1.1020/ldap/README.md new file mode 100644 index 000000000..4b8eb097a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.1.1.1020 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.1.1020/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.1.1.1020/ldap/docker-compose.yml new file mode 100644 index 000000000..94698e067 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.1.1.1020" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.1.1020/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.1.1020/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..66240bc05 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.1.1020 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/.env b/linux/ecosystem/testrail/6.1.1.1020/main/.env new file mode 100644 index 000000000..c002d9ed3 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.1.1.1020 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/Dockerfile b/linux/ecosystem/testrail/6.1.1.1020/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/Makefile b/linux/ecosystem/testrail/6.1.1.1020/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/README.md b/linux/ecosystem/testrail/6.1.1.1020/main/README.md new file mode 100644 index 000000000..8c0c7ae76 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.1.1.1020 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/apache_testrail.conf b/linux/ecosystem/testrail/6.1.1.1020/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/docker-compose.yml b/linux/ecosystem/testrail/6.1.1.1020/main/docker-compose.yml new file mode 100644 index 000000000..55408492d --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.1.1.1020" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.1.1020/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.1.1020/main/docker-entrypoint.sh new file mode 100755 index 000000000..fc2f13580 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1020/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.1.1020" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.1.1021/ad/Dockerfile b/linux/ecosystem/testrail/6.1.1.1021/ad/Dockerfile new file mode 100644 index 000000000..4aa1904cd --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.1.1021 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.1.1021/ad/Makefile b/linux/ecosystem/testrail/6.1.1.1021/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.1.1021/ad/README.md b/linux/ecosystem/testrail/6.1.1.1021/ad/README.md new file mode 100644 index 000000000..ebf5fc37c --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.1.1.1021 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.1.1021/ad/docker-compose.yml b/linux/ecosystem/testrail/6.1.1.1021/ad/docker-compose.yml new file mode 100644 index 000000000..34847bb58 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.1.1.1021" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.1.1021/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.1.1021/ad/docker-entrypoint.sh new file mode 100755 index 000000000..bd07f2a4e --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.1.1021 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.1.1021/ldap/Dockerfile b/linux/ecosystem/testrail/6.1.1.1021/ldap/Dockerfile new file mode 100644 index 000000000..c0ae2df4f --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.1.1.1021 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.1.1.1021/ldap/Makefile b/linux/ecosystem/testrail/6.1.1.1021/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.1.1021/ldap/README.md b/linux/ecosystem/testrail/6.1.1.1021/ldap/README.md new file mode 100644 index 000000000..dbb1069c0 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.1.1.1021 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.1.1021/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.1.1.1021/ldap/docker-compose.yml new file mode 100644 index 000000000..caf4aa0c4 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.1.1.1021" + build: + context: . diff --git a/linux/ecosystem/testrail/6.1.1.1021/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.1.1021/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..9df056483 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.1.1021 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/.env b/linux/ecosystem/testrail/6.1.1.1021/main/.env new file mode 100644 index 000000000..13a1e19c9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.1.1.1021 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/Dockerfile b/linux/ecosystem/testrail/6.1.1.1021/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/Makefile b/linux/ecosystem/testrail/6.1.1.1021/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/README.md b/linux/ecosystem/testrail/6.1.1.1021/main/README.md new file mode 100644 index 000000000..9194369a8 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.1.1.1021 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/apache_testrail.conf b/linux/ecosystem/testrail/6.1.1.1021/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/docker-compose.yml b/linux/ecosystem/testrail/6.1.1.1021/main/docker-compose.yml new file mode 100644 index 000000000..9dcb2b924 --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.1.1.1021" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.1.1.1021/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.1.1.1021/main/docker-entrypoint.sh new file mode 100755 index 000000000..f585697cd --- /dev/null +++ b/linux/ecosystem/testrail/6.1.1.1021/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.1.1.1021" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.0.1085/ad/Dockerfile b/linux/ecosystem/testrail/6.2.0.1085/ad/Dockerfile new file mode 100644 index 000000000..0eea60e1d --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.0.1085 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.0.1085/ad/Makefile b/linux/ecosystem/testrail/6.2.0.1085/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.0.1085/ad/README.md b/linux/ecosystem/testrail/6.2.0.1085/ad/README.md new file mode 100644 index 000000000..476e54617 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.2.0.1085 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.0.1085/ad/docker-compose.yml b/linux/ecosystem/testrail/6.2.0.1085/ad/docker-compose.yml new file mode 100644 index 000000000..2957c1893 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.2.0.1085" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.0.1085/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.0.1085/ad/docker-entrypoint.sh new file mode 100755 index 000000000..90118cf4e --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.0.1085 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.0.1085/ldap/Dockerfile b/linux/ecosystem/testrail/6.2.0.1085/ldap/Dockerfile new file mode 100644 index 000000000..d487b95f1 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.0.1085 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.0.1085/ldap/Makefile b/linux/ecosystem/testrail/6.2.0.1085/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.0.1085/ldap/README.md b/linux/ecosystem/testrail/6.2.0.1085/ldap/README.md new file mode 100644 index 000000000..77f4c31a0 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.2.0.1085 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.0.1085/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.2.0.1085/ldap/docker-compose.yml new file mode 100644 index 000000000..c83e86a9e --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.2.0.1085" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.0.1085/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.0.1085/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..d7871029e --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.0.1085 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/.env b/linux/ecosystem/testrail/6.2.0.1085/main/.env new file mode 100644 index 000000000..b6790e8dd --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.2.0.1085 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/Dockerfile b/linux/ecosystem/testrail/6.2.0.1085/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/Makefile b/linux/ecosystem/testrail/6.2.0.1085/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/README.md b/linux/ecosystem/testrail/6.2.0.1085/main/README.md new file mode 100644 index 000000000..d5c3e86f9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.2.0.1085 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/apache_testrail.conf b/linux/ecosystem/testrail/6.2.0.1085/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/docker-compose.yml b/linux/ecosystem/testrail/6.2.0.1085/main/docker-compose.yml new file mode 100644 index 000000000..40333e172 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.2.0.1085" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.0.1085/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.0.1085/main/docker-entrypoint.sh new file mode 100755 index 000000000..708441c0f --- /dev/null +++ b/linux/ecosystem/testrail/6.2.0.1085/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.0.1085" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.1.1003/ad/Dockerfile b/linux/ecosystem/testrail/6.2.1.1003/ad/Dockerfile new file mode 100644 index 000000000..0bb6f4da8 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.1.1003 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.1.1003/ad/Makefile b/linux/ecosystem/testrail/6.2.1.1003/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.1.1003/ad/README.md b/linux/ecosystem/testrail/6.2.1.1003/ad/README.md new file mode 100644 index 000000000..dda810595 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.2.1.1003 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.1.1003/ad/docker-compose.yml b/linux/ecosystem/testrail/6.2.1.1003/ad/docker-compose.yml new file mode 100644 index 000000000..c8e272a2f --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.2.1.1003" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.1.1003/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.1.1003/ad/docker-entrypoint.sh new file mode 100755 index 000000000..836e114da --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.1.1003 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.1.1003/ldap/Dockerfile b/linux/ecosystem/testrail/6.2.1.1003/ldap/Dockerfile new file mode 100644 index 000000000..42f835d9b --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.1.1003 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.1.1003/ldap/Makefile b/linux/ecosystem/testrail/6.2.1.1003/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.1.1003/ldap/README.md b/linux/ecosystem/testrail/6.2.1.1003/ldap/README.md new file mode 100644 index 000000000..0a8c9ad9d --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.2.1.1003 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.1.1003/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.2.1.1003/ldap/docker-compose.yml new file mode 100644 index 000000000..155b9f0a8 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.2.1.1003" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.1.1003/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.1.1003/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..e9e6ac169 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.1.1003 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/.env b/linux/ecosystem/testrail/6.2.1.1003/main/.env new file mode 100644 index 000000000..76f10ec03 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.2.1.1003 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/Dockerfile b/linux/ecosystem/testrail/6.2.1.1003/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/Makefile b/linux/ecosystem/testrail/6.2.1.1003/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/README.md b/linux/ecosystem/testrail/6.2.1.1003/main/README.md new file mode 100644 index 000000000..fb42e1128 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.2.1.1003 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/apache_testrail.conf b/linux/ecosystem/testrail/6.2.1.1003/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/docker-compose.yml b/linux/ecosystem/testrail/6.2.1.1003/main/docker-compose.yml new file mode 100644 index 000000000..90b0653e0 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.2.1.1003" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.1.1003/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.1.1003/main/docker-entrypoint.sh new file mode 100755 index 000000000..0065ad2ad --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1003/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.1.1003" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.1.1005/ad/Dockerfile b/linux/ecosystem/testrail/6.2.1.1005/ad/Dockerfile new file mode 100644 index 000000000..743c45981 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.1.1005 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.1.1005/ad/Makefile b/linux/ecosystem/testrail/6.2.1.1005/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.1.1005/ad/README.md b/linux/ecosystem/testrail/6.2.1.1005/ad/README.md new file mode 100644 index 000000000..fa7ce01dd --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.2.1.1005 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.1.1005/ad/docker-compose.yml b/linux/ecosystem/testrail/6.2.1.1005/ad/docker-compose.yml new file mode 100644 index 000000000..d4a701b64 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.2.1.1005" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.1.1005/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.1.1005/ad/docker-entrypoint.sh new file mode 100755 index 000000000..e465f12a3 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.1.1005 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.1.1005/ldap/Dockerfile b/linux/ecosystem/testrail/6.2.1.1005/ldap/Dockerfile new file mode 100644 index 000000000..95d7af610 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.1.1005 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.1.1005/ldap/Makefile b/linux/ecosystem/testrail/6.2.1.1005/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.1.1005/ldap/README.md b/linux/ecosystem/testrail/6.2.1.1005/ldap/README.md new file mode 100644 index 000000000..d49d2eda0 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.2.1.1005 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.1.1005/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.2.1.1005/ldap/docker-compose.yml new file mode 100644 index 000000000..4c4bc2b79 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.2.1.1005" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.1.1005/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.1.1005/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..6c7ccd7b6 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.1.1005 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/.env b/linux/ecosystem/testrail/6.2.1.1005/main/.env new file mode 100644 index 000000000..e04b48b90 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.2.1.1005 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/Dockerfile b/linux/ecosystem/testrail/6.2.1.1005/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/Makefile b/linux/ecosystem/testrail/6.2.1.1005/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/README.md b/linux/ecosystem/testrail/6.2.1.1005/main/README.md new file mode 100644 index 000000000..e0d45b7ac --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.2.1.1005 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/apache_testrail.conf b/linux/ecosystem/testrail/6.2.1.1005/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/docker-compose.yml b/linux/ecosystem/testrail/6.2.1.1005/main/docker-compose.yml new file mode 100644 index 000000000..f72e1502f --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.2.1.1005" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.1.1005/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.1.1005/main/docker-entrypoint.sh new file mode 100755 index 000000000..2875fd10e --- /dev/null +++ b/linux/ecosystem/testrail/6.2.1.1005/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.1.1005" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.2.1107/ad/Dockerfile b/linux/ecosystem/testrail/6.2.2.1107/ad/Dockerfile new file mode 100644 index 000000000..bdeb2b58e --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.2.1107 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.2.1107/ad/Makefile b/linux/ecosystem/testrail/6.2.2.1107/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.2.1107/ad/README.md b/linux/ecosystem/testrail/6.2.2.1107/ad/README.md new file mode 100644 index 000000000..f8a862741 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.2.2.1107 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.2.1107/ad/docker-compose.yml b/linux/ecosystem/testrail/6.2.2.1107/ad/docker-compose.yml new file mode 100644 index 000000000..cdbba4d8d --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.2.2.1107" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.2.1107/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.2.1107/ad/docker-entrypoint.sh new file mode 100755 index 000000000..a6ee9cae8 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.2.1107 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.2.1107/ldap/Dockerfile b/linux/ecosystem/testrail/6.2.2.1107/ldap/Dockerfile new file mode 100644 index 000000000..730e9059b --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.2.1107 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.2.1107/ldap/Makefile b/linux/ecosystem/testrail/6.2.2.1107/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.2.1107/ldap/README.md b/linux/ecosystem/testrail/6.2.2.1107/ldap/README.md new file mode 100644 index 000000000..5b597b4b9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.2.2.1107 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.2.1107/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.2.2.1107/ldap/docker-compose.yml new file mode 100644 index 000000000..cb128f111 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.2.2.1107" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.2.1107/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.2.1107/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..9961a6b5b --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.2.1107 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/.env b/linux/ecosystem/testrail/6.2.2.1107/main/.env new file mode 100644 index 000000000..5bcbdeb27 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.2.2.1107 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/Dockerfile b/linux/ecosystem/testrail/6.2.2.1107/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/Makefile b/linux/ecosystem/testrail/6.2.2.1107/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/README.md b/linux/ecosystem/testrail/6.2.2.1107/main/README.md new file mode 100644 index 000000000..10c7d2388 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.2.2.1107 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/apache_testrail.conf b/linux/ecosystem/testrail/6.2.2.1107/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/docker-compose.yml b/linux/ecosystem/testrail/6.2.2.1107/main/docker-compose.yml new file mode 100644 index 000000000..f0e8c513b --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.2.2.1107" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.2.1107/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.2.1107/main/docker-entrypoint.sh new file mode 100755 index 000000000..fc74c2dc0 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.2.1107/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.2.1107" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.3.1114/ad/Dockerfile b/linux/ecosystem/testrail/6.2.3.1114/ad/Dockerfile new file mode 100644 index 000000000..10564d3e1 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.3.1114 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.3.1114/ad/Makefile b/linux/ecosystem/testrail/6.2.3.1114/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.3.1114/ad/README.md b/linux/ecosystem/testrail/6.2.3.1114/ad/README.md new file mode 100644 index 000000000..a6c6b1200 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.2.3.1114 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.3.1114/ad/docker-compose.yml b/linux/ecosystem/testrail/6.2.3.1114/ad/docker-compose.yml new file mode 100644 index 000000000..7bcbdfa84 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.2.3.1114" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.3.1114/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.3.1114/ad/docker-entrypoint.sh new file mode 100755 index 000000000..564439ca5 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.3.1114 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.3.1114/ldap/Dockerfile b/linux/ecosystem/testrail/6.2.3.1114/ldap/Dockerfile new file mode 100644 index 000000000..335745c3f --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.2.3.1114 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.2.3.1114/ldap/Makefile b/linux/ecosystem/testrail/6.2.3.1114/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.3.1114/ldap/README.md b/linux/ecosystem/testrail/6.2.3.1114/ldap/README.md new file mode 100644 index 000000000..156eae581 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.2.3.1114 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.3.1114/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.2.3.1114/ldap/docker-compose.yml new file mode 100644 index 000000000..8454c9a29 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.2.3.1114" + build: + context: . diff --git a/linux/ecosystem/testrail/6.2.3.1114/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.3.1114/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..061cf3f01 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.3.1114 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/.env b/linux/ecosystem/testrail/6.2.3.1114/main/.env new file mode 100644 index 000000000..80a84f7c4 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.2.3.1114 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/Dockerfile b/linux/ecosystem/testrail/6.2.3.1114/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/Makefile b/linux/ecosystem/testrail/6.2.3.1114/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/README.md b/linux/ecosystem/testrail/6.2.3.1114/main/README.md new file mode 100644 index 000000000..f47f73a42 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.2.3.1114 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/apache_testrail.conf b/linux/ecosystem/testrail/6.2.3.1114/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/docker-compose.yml b/linux/ecosystem/testrail/6.2.3.1114/main/docker-compose.yml new file mode 100644 index 000000000..a8070f80d --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.2.3.1114" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.2.3.1114/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.2.3.1114/main/docker-entrypoint.sh new file mode 100755 index 000000000..fca9a1a67 --- /dev/null +++ b/linux/ecosystem/testrail/6.2.3.1114/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.2.3.1114" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.0.1120/ad/Dockerfile b/linux/ecosystem/testrail/6.3.0.1120/ad/Dockerfile new file mode 100644 index 000000000..29886f456 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.3.0.1120 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.3.0.1120/ad/Makefile b/linux/ecosystem/testrail/6.3.0.1120/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.0.1120/ad/README.md b/linux/ecosystem/testrail/6.3.0.1120/ad/README.md new file mode 100644 index 000000000..b2394c3a0 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.3.0.1120 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.0.1120/ad/docker-compose.yml b/linux/ecosystem/testrail/6.3.0.1120/ad/docker-compose.yml new file mode 100644 index 000000000..35f3fa8d3 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.3.0.1120" + build: + context: . diff --git a/linux/ecosystem/testrail/6.3.0.1120/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.0.1120/ad/docker-entrypoint.sh new file mode 100755 index 000000000..4efa355b2 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.0.1120 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.0.1120/ldap/Dockerfile b/linux/ecosystem/testrail/6.3.0.1120/ldap/Dockerfile new file mode 100644 index 000000000..68bb5ea2d --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.3.0.1120 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.3.0.1120/ldap/Makefile b/linux/ecosystem/testrail/6.3.0.1120/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.0.1120/ldap/README.md b/linux/ecosystem/testrail/6.3.0.1120/ldap/README.md new file mode 100644 index 000000000..5a43017c8 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.3.0.1120 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.0.1120/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.3.0.1120/ldap/docker-compose.yml new file mode 100644 index 000000000..7c4f18019 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.3.0.1120" + build: + context: . diff --git a/linux/ecosystem/testrail/6.3.0.1120/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.0.1120/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..7db22a65f --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.0.1120 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/.env b/linux/ecosystem/testrail/6.3.0.1120/main/.env new file mode 100644 index 000000000..1cd72ceec --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.3.0.1120 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/Dockerfile b/linux/ecosystem/testrail/6.3.0.1120/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/Makefile b/linux/ecosystem/testrail/6.3.0.1120/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/README.md b/linux/ecosystem/testrail/6.3.0.1120/main/README.md new file mode 100644 index 000000000..65477fd0d --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.3.0.1120 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/apache_testrail.conf b/linux/ecosystem/testrail/6.3.0.1120/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/docker-compose.yml b/linux/ecosystem/testrail/6.3.0.1120/main/docker-compose.yml new file mode 100644 index 000000000..ebe893c75 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.3.0.1120" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.3.0.1120/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.0.1120/main/docker-entrypoint.sh new file mode 100755 index 000000000..ef208fc42 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.0.1120/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.0.1120" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.1.1004/ad/Dockerfile b/linux/ecosystem/testrail/6.3.1.1004/ad/Dockerfile new file mode 100644 index 000000000..3a1602753 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.3.1.1004 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.3.1.1004/ad/Makefile b/linux/ecosystem/testrail/6.3.1.1004/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.1.1004/ad/README.md b/linux/ecosystem/testrail/6.3.1.1004/ad/README.md new file mode 100644 index 000000000..3c5f27bee --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.3.1.1004 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.1.1004/ad/docker-compose.yml b/linux/ecosystem/testrail/6.3.1.1004/ad/docker-compose.yml new file mode 100644 index 000000000..556f3ea0c --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.3.1.1004" + build: + context: . diff --git a/linux/ecosystem/testrail/6.3.1.1004/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.1.1004/ad/docker-entrypoint.sh new file mode 100755 index 000000000..bf2b2fe37 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.1.1004 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.1.1004/ldap/Dockerfile b/linux/ecosystem/testrail/6.3.1.1004/ldap/Dockerfile new file mode 100644 index 000000000..c63492b99 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.3.1.1004 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.3.1.1004/ldap/Makefile b/linux/ecosystem/testrail/6.3.1.1004/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.1.1004/ldap/README.md b/linux/ecosystem/testrail/6.3.1.1004/ldap/README.md new file mode 100644 index 000000000..f2bcc4219 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.3.1.1004 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.1.1004/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.3.1.1004/ldap/docker-compose.yml new file mode 100644 index 000000000..72fbfe988 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.3.1.1004" + build: + context: . diff --git a/linux/ecosystem/testrail/6.3.1.1004/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.1.1004/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..d584f4a2f --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.1.1004 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/.env b/linux/ecosystem/testrail/6.3.1.1004/main/.env new file mode 100644 index 000000000..1d829252a --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.3.1.1004 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/Dockerfile b/linux/ecosystem/testrail/6.3.1.1004/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/Makefile b/linux/ecosystem/testrail/6.3.1.1004/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/README.md b/linux/ecosystem/testrail/6.3.1.1004/main/README.md new file mode 100644 index 000000000..601e04da6 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.3.1.1004 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/apache_testrail.conf b/linux/ecosystem/testrail/6.3.1.1004/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/docker-compose.yml b/linux/ecosystem/testrail/6.3.1.1004/main/docker-compose.yml new file mode 100644 index 000000000..f4731e5de --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.3.1.1004" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.3.1.1004/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.1.1004/main/docker-entrypoint.sh new file mode 100755 index 000000000..2f241e1d8 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1004/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.1.1004" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.1.1006/ad/Dockerfile b/linux/ecosystem/testrail/6.3.1.1006/ad/Dockerfile new file mode 100644 index 000000000..aabf9af2a --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.3.1.1006 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.3.1.1006/ad/Makefile b/linux/ecosystem/testrail/6.3.1.1006/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.1.1006/ad/README.md b/linux/ecosystem/testrail/6.3.1.1006/ad/README.md new file mode 100644 index 000000000..cd279599f --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.3.1.1006 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.1.1006/ad/docker-compose.yml b/linux/ecosystem/testrail/6.3.1.1006/ad/docker-compose.yml new file mode 100644 index 000000000..cdc92601a --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.3.1.1006" + build: + context: . diff --git a/linux/ecosystem/testrail/6.3.1.1006/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.1.1006/ad/docker-entrypoint.sh new file mode 100755 index 000000000..d81abb8a3 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.1.1006 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.1.1006/ldap/Dockerfile b/linux/ecosystem/testrail/6.3.1.1006/ldap/Dockerfile new file mode 100644 index 000000000..9c9a4c53b --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.3.1.1006 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.3.1.1006/ldap/Makefile b/linux/ecosystem/testrail/6.3.1.1006/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.1.1006/ldap/README.md b/linux/ecosystem/testrail/6.3.1.1006/ldap/README.md new file mode 100644 index 000000000..9439a83be --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.3.1.1006 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.1.1006/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.3.1.1006/ldap/docker-compose.yml new file mode 100644 index 000000000..4c52c46c4 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.3.1.1006" + build: + context: . diff --git a/linux/ecosystem/testrail/6.3.1.1006/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.1.1006/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..0e5d8d3dd --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.1.1006 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/.env b/linux/ecosystem/testrail/6.3.1.1006/main/.env new file mode 100644 index 000000000..dc488af35 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.3.1.1006 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/Dockerfile b/linux/ecosystem/testrail/6.3.1.1006/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/Makefile b/linux/ecosystem/testrail/6.3.1.1006/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/README.md b/linux/ecosystem/testrail/6.3.1.1006/main/README.md new file mode 100644 index 000000000..524db23d7 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.3.1.1006 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/apache_testrail.conf b/linux/ecosystem/testrail/6.3.1.1006/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/docker-compose.yml b/linux/ecosystem/testrail/6.3.1.1006/main/docker-compose.yml new file mode 100644 index 000000000..99814ea55 --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.3.1.1006" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.3.1.1006/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.3.1.1006/main/docker-entrypoint.sh new file mode 100755 index 000000000..ef8a1693f --- /dev/null +++ b/linux/ecosystem/testrail/6.3.1.1006/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.3.1.1006" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.4.0.1284/ad/Dockerfile b/linux/ecosystem/testrail/6.4.0.1284/ad/Dockerfile new file mode 100644 index 000000000..3fe581951 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.4.0.1284 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.4.0.1284/ad/Makefile b/linux/ecosystem/testrail/6.4.0.1284/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.4.0.1284/ad/README.md b/linux/ecosystem/testrail/6.4.0.1284/ad/README.md new file mode 100644 index 000000000..339ecc1ef --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.4.0.1284 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.4.0.1284/ad/docker-compose.yml b/linux/ecosystem/testrail/6.4.0.1284/ad/docker-compose.yml new file mode 100644 index 000000000..4c2bcbac7 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.4.0.1284" + build: + context: . diff --git a/linux/ecosystem/testrail/6.4.0.1284/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.4.0.1284/ad/docker-entrypoint.sh new file mode 100755 index 000000000..da01aefcf --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.4.0.1284 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.4.0.1284/ldap/Dockerfile b/linux/ecosystem/testrail/6.4.0.1284/ldap/Dockerfile new file mode 100644 index 000000000..88086216f --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.4.0.1284 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.4.0.1284/ldap/Makefile b/linux/ecosystem/testrail/6.4.0.1284/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.4.0.1284/ldap/README.md b/linux/ecosystem/testrail/6.4.0.1284/ldap/README.md new file mode 100644 index 000000000..d9a934cad --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.4.0.1284 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.4.0.1284/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.4.0.1284/ldap/docker-compose.yml new file mode 100644 index 000000000..201589bbf --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.4.0.1284" + build: + context: . diff --git a/linux/ecosystem/testrail/6.4.0.1284/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.4.0.1284/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..a8ac11b44 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.4.0.1284 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/.env b/linux/ecosystem/testrail/6.4.0.1284/main/.env new file mode 100644 index 000000000..064fe9e56 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.4.0.1284 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/Dockerfile b/linux/ecosystem/testrail/6.4.0.1284/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/Makefile b/linux/ecosystem/testrail/6.4.0.1284/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/README.md b/linux/ecosystem/testrail/6.4.0.1284/main/README.md new file mode 100644 index 000000000..e7b984c30 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.4.0.1284 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/apache_testrail.conf b/linux/ecosystem/testrail/6.4.0.1284/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/docker-compose.yml b/linux/ecosystem/testrail/6.4.0.1284/main/docker-compose.yml new file mode 100644 index 000000000..b75e840c0 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.4.0.1284" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.4.0.1284/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.4.0.1284/main/docker-entrypoint.sh new file mode 100755 index 000000000..d3992227a --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1284/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.4.0.1284" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.4.0.1293/ad/Dockerfile b/linux/ecosystem/testrail/6.4.0.1293/ad/Dockerfile new file mode 100644 index 000000000..fc9ea0148 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.4.0.1293 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.4.0.1293/ad/Makefile b/linux/ecosystem/testrail/6.4.0.1293/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.4.0.1293/ad/README.md b/linux/ecosystem/testrail/6.4.0.1293/ad/README.md new file mode 100644 index 000000000..0308c7ed6 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.4.0.1293 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.4.0.1293/ad/docker-compose.yml b/linux/ecosystem/testrail/6.4.0.1293/ad/docker-compose.yml new file mode 100644 index 000000000..d15006b19 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.4.0.1293" + build: + context: . diff --git a/linux/ecosystem/testrail/6.4.0.1293/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.4.0.1293/ad/docker-entrypoint.sh new file mode 100755 index 000000000..6fa097cb9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.4.0.1293 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.4.0.1293/ldap/Dockerfile b/linux/ecosystem/testrail/6.4.0.1293/ldap/Dockerfile new file mode 100644 index 000000000..dfbbac821 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.4.0.1293 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.4.0.1293/ldap/Makefile b/linux/ecosystem/testrail/6.4.0.1293/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.4.0.1293/ldap/README.md b/linux/ecosystem/testrail/6.4.0.1293/ldap/README.md new file mode 100644 index 000000000..65a314bf1 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.4.0.1293 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.4.0.1293/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.4.0.1293/ldap/docker-compose.yml new file mode 100644 index 000000000..f0aa7b40d --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.4.0.1293" + build: + context: . diff --git a/linux/ecosystem/testrail/6.4.0.1293/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.4.0.1293/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..3b7e46670 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.4.0.1293 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/.env b/linux/ecosystem/testrail/6.4.0.1293/main/.env new file mode 100644 index 000000000..a77fa9697 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.4.0.1293 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion71.zip diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/Dockerfile b/linux/ecosystem/testrail/6.4.0.1293/main/Dockerfile new file mode 100644 index 000000000..9e64aa53a --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/Makefile b/linux/ecosystem/testrail/6.4.0.1293/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/README.md b/linux/ecosystem/testrail/6.4.0.1293/main/README.md new file mode 100644 index 000000000..b5c91e421 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.4.0.1293 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/apache_testrail.conf b/linux/ecosystem/testrail/6.4.0.1293/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/docker-compose.yml b/linux/ecosystem/testrail/6.4.0.1293/main/docker-compose.yml new file mode 100644 index 000000000..922c04aa4 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.4.0.1293" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.4.0.1293/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.4.0.1293/main/docker-entrypoint.sh new file mode 100755 index 000000000..70b606990 --- /dev/null +++ b/linux/ecosystem/testrail/6.4.0.1293/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.4.0.1293" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.0.1298/ad/Dockerfile b/linux/ecosystem/testrail/6.5.0.1298/ad/Dockerfile new file mode 100644 index 000000000..f55bdadce --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.0.1298 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.0.1298/ad/Makefile b/linux/ecosystem/testrail/6.5.0.1298/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.0.1298/ad/README.md b/linux/ecosystem/testrail/6.5.0.1298/ad/README.md new file mode 100644 index 000000000..35d53f4c5 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.0.1298 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.0.1298/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.0.1298/ad/docker-compose.yml new file mode 100644 index 000000000..f2290f7cf --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.0.1298" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.0.1298/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.0.1298/ad/docker-entrypoint.sh new file mode 100755 index 000000000..ee98786f0 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.0.1298 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.0.1298/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.0.1298/ldap/Dockerfile new file mode 100644 index 000000000..79dd07b62 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.0.1298 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.0.1298/ldap/Makefile b/linux/ecosystem/testrail/6.5.0.1298/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.0.1298/ldap/README.md b/linux/ecosystem/testrail/6.5.0.1298/ldap/README.md new file mode 100644 index 000000000..2d37e59e9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.0.1298 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.0.1298/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.0.1298/ldap/docker-compose.yml new file mode 100644 index 000000000..46c5fc410 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.0.1298" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.0.1298/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.0.1298/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..10a80b751 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.0.1298 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.0.1298/main/.env b/linux/ecosystem/testrail/6.5.0.1298/main/.env new file mode 100644 index 000000000..087de10f2 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.0.1298 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.0.1298/main/Dockerfile b/linux/ecosystem/testrail/6.5.0.1298/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.0.1298/main/Makefile b/linux/ecosystem/testrail/6.5.0.1298/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/latest/ad/README.md b/linux/ecosystem/testrail/6.5.0.1298/main/README.md similarity index 94% rename from linux/ecosystem/testrail/latest/ad/README.md rename to linux/ecosystem/testrail/6.5.0.1298/main/README.md index 1aae0e92d..aaf876a98 100644 --- a/linux/ecosystem/testrail/latest/ad/README.md +++ b/linux/ecosystem/testrail/6.5.0.1298/main/README.md @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:6.5.0.1298 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/6.5.0.1298/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.0.1298/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.0.1298/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.0.1298/main/docker-compose.yml new file mode 100644 index 000000000..0ac06a951 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.0.1298" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.0.1298/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.0.1298/main/docker-entrypoint.sh new file mode 100755 index 000000000..79a026696 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.0.1298/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.0.1298" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.1.1002/ad/Dockerfile b/linux/ecosystem/testrail/6.5.1.1002/ad/Dockerfile new file mode 100644 index 000000000..a6a7ff4d9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.1.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.1.1002/ad/Makefile b/linux/ecosystem/testrail/6.5.1.1002/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.1.1002/ad/README.md b/linux/ecosystem/testrail/6.5.1.1002/ad/README.md new file mode 100644 index 000000000..bd5c81d10 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.1.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.1.1002/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.1.1002/ad/docker-compose.yml new file mode 100644 index 000000000..ca12bdcc4 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.1.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.1.1002/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.1.1002/ad/docker-entrypoint.sh new file mode 100755 index 000000000..ba95027f4 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.1.1002 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.1.1002/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.1.1002/ldap/Dockerfile new file mode 100644 index 000000000..195202cb0 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.1.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.1.1002/ldap/Makefile b/linux/ecosystem/testrail/6.5.1.1002/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.1.1002/ldap/README.md b/linux/ecosystem/testrail/6.5.1.1002/ldap/README.md new file mode 100644 index 000000000..a467d5783 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.1.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.1.1002/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.1.1002/ldap/docker-compose.yml new file mode 100644 index 000000000..143b315e4 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.1.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.1.1002/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.1.1002/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..08b0ebdcd --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.1.1002 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.1.1002/main/.env b/linux/ecosystem/testrail/6.5.1.1002/main/.env new file mode 100644 index 000000000..86829ad0a --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.1.1002 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.1.1002/main/Dockerfile b/linux/ecosystem/testrail/6.5.1.1002/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.1.1002/main/Makefile b/linux/ecosystem/testrail/6.5.1.1002/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/latest/main/README.md b/linux/ecosystem/testrail/6.5.1.1002/main/README.md similarity index 94% rename from linux/ecosystem/testrail/latest/main/README.md rename to linux/ecosystem/testrail/6.5.1.1002/main/README.md index 1aae0e92d..a2840eb68 100644 --- a/linux/ecosystem/testrail/latest/main/README.md +++ b/linux/ecosystem/testrail/6.5.1.1002/main/README.md @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:6.5.1.1002 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/6.5.1.1002/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.1.1002/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.1.1002/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.1.1002/main/docker-compose.yml new file mode 100644 index 000000000..816f6a82a --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.1.1002" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.1.1002/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.1.1002/main/docker-entrypoint.sh new file mode 100755 index 000000000..a9da8173b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.1.1002/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.1.1002" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.3.1001/ad/Dockerfile b/linux/ecosystem/testrail/6.5.3.1001/ad/Dockerfile new file mode 100644 index 000000000..50b36c1e4 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.3.1001 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.3.1001/ad/Makefile b/linux/ecosystem/testrail/6.5.3.1001/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.3.1001/ad/README.md b/linux/ecosystem/testrail/6.5.3.1001/ad/README.md new file mode 100644 index 000000000..2ad6d4e44 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.3.1001 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.3.1001/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.3.1001/ad/docker-compose.yml new file mode 100644 index 000000000..5352516ec --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.3.1001" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.3.1001/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.3.1001/ad/docker-entrypoint.sh new file mode 100755 index 000000000..48894e5d5 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.3.1001 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.3.1001/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.3.1001/ldap/Dockerfile new file mode 100644 index 000000000..3b6bafc92 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.3.1001 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.3.1001/ldap/Makefile b/linux/ecosystem/testrail/6.5.3.1001/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.3.1001/ldap/README.md b/linux/ecosystem/testrail/6.5.3.1001/ldap/README.md new file mode 100644 index 000000000..4a1af278e --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.3.1001 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.3.1001/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.3.1001/ldap/docker-compose.yml new file mode 100644 index 000000000..af6eb7ccd --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.3.1001" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.3.1001/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.3.1001/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..ff8609bf2 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.3.1001 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.3.1001/main/.env b/linux/ecosystem/testrail/6.5.3.1001/main/.env new file mode 100644 index 000000000..6465414ce --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.3.1001 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.3.1001/main/Dockerfile b/linux/ecosystem/testrail/6.5.3.1001/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.3.1001/main/Makefile b/linux/ecosystem/testrail/6.5.3.1001/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/latest/ldap/README.md b/linux/ecosystem/testrail/6.5.3.1001/main/README.md similarity index 94% rename from linux/ecosystem/testrail/latest/ldap/README.md rename to linux/ecosystem/testrail/6.5.3.1001/main/README.md index 1aae0e92d..3ef1a7ee8 100644 --- a/linux/ecosystem/testrail/latest/ldap/README.md +++ b/linux/ecosystem/testrail/6.5.3.1001/main/README.md @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:6.5.3.1001 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/6.5.3.1001/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.3.1001/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.3.1001/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.3.1001/main/docker-compose.yml new file mode 100644 index 000000000..87fa34928 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.3.1001" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.3.1001/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.3.1001/main/docker-entrypoint.sh new file mode 100755 index 000000000..1f7d3c9ed --- /dev/null +++ b/linux/ecosystem/testrail/6.5.3.1001/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.3.1001" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.4.1002/ad/Dockerfile b/linux/ecosystem/testrail/6.5.4.1002/ad/Dockerfile new file mode 100644 index 000000000..7097935a7 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.4.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.4.1002/ad/Makefile b/linux/ecosystem/testrail/6.5.4.1002/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.4.1002/ad/README.md b/linux/ecosystem/testrail/6.5.4.1002/ad/README.md new file mode 100644 index 000000000..755b91b6c --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.4.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.4.1002/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.4.1002/ad/docker-compose.yml new file mode 100644 index 000000000..e64a3349b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.4.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.4.1002/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.4.1002/ad/docker-entrypoint.sh new file mode 100755 index 000000000..bd159c612 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.4.1002 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.4.1002/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.4.1002/ldap/Dockerfile new file mode 100644 index 000000000..86d328ea6 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.4.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.4.1002/ldap/Makefile b/linux/ecosystem/testrail/6.5.4.1002/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.4.1002/ldap/README.md b/linux/ecosystem/testrail/6.5.4.1002/ldap/README.md new file mode 100644 index 000000000..3a8337d46 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.4.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.4.1002/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.4.1002/ldap/docker-compose.yml new file mode 100644 index 000000000..8d3aa189a --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.4.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.4.1002/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.4.1002/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..c2edf2017 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.4.1002 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/.env b/linux/ecosystem/testrail/6.5.4.1002/main/.env new file mode 100644 index 000000000..04eedd46f --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.4.1002 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/Dockerfile b/linux/ecosystem/testrail/6.5.4.1002/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/Makefile b/linux/ecosystem/testrail/6.5.4.1002/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/README.md b/linux/ecosystem/testrail/6.5.4.1002/main/README.md new file mode 100644 index 000000000..cc7f6305d --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.5.4.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.4.1002/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.4.1002/main/docker-compose.yml new file mode 100644 index 000000000..201d70664 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.4.1002" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.4.1002/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.4.1002/main/docker-entrypoint.sh new file mode 100755 index 000000000..b8e970b18 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1002/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.4.1002" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.4.1007/ad/Dockerfile b/linux/ecosystem/testrail/6.5.4.1007/ad/Dockerfile new file mode 100644 index 000000000..f378337c1 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.4.1007 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.4.1007/ad/Makefile b/linux/ecosystem/testrail/6.5.4.1007/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.4.1007/ad/README.md b/linux/ecosystem/testrail/6.5.4.1007/ad/README.md new file mode 100644 index 000000000..6175e3519 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.4.1007 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.4.1007/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.4.1007/ad/docker-compose.yml new file mode 100644 index 000000000..f68a80c35 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.4.1007" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.4.1007/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.4.1007/ad/docker-entrypoint.sh new file mode 100755 index 000000000..208bc877d --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.4.1007 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.4.1007/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.4.1007/ldap/Dockerfile new file mode 100644 index 000000000..40e5f2ffa --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.4.1007 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.4.1007/ldap/Makefile b/linux/ecosystem/testrail/6.5.4.1007/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.4.1007/ldap/README.md b/linux/ecosystem/testrail/6.5.4.1007/ldap/README.md new file mode 100644 index 000000000..6f90363d8 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.4.1007 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.4.1007/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.4.1007/ldap/docker-compose.yml new file mode 100644 index 000000000..6819cb402 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.4.1007" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.4.1007/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.4.1007/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..af408eecf --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.4.1007 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/.env b/linux/ecosystem/testrail/6.5.4.1007/main/.env new file mode 100644 index 000000000..935ceef6c --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.4.1007 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/Dockerfile b/linux/ecosystem/testrail/6.5.4.1007/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/Makefile b/linux/ecosystem/testrail/6.5.4.1007/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/README.md b/linux/ecosystem/testrail/6.5.4.1007/main/README.md new file mode 100644 index 000000000..6f143049d --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.5.4.1007 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.4.1007/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.4.1007/main/docker-compose.yml new file mode 100644 index 000000000..6a7ead3bb --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.4.1007" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.4.1007/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.4.1007/main/docker-entrypoint.sh new file mode 100755 index 000000000..c3bb43bcd --- /dev/null +++ b/linux/ecosystem/testrail/6.5.4.1007/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.4.1007" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.5.1009/ad/Dockerfile b/linux/ecosystem/testrail/6.5.5.1009/ad/Dockerfile new file mode 100644 index 000000000..39a255688 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.5.1009 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.5.1009/ad/Makefile b/linux/ecosystem/testrail/6.5.5.1009/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.5.1009/ad/README.md b/linux/ecosystem/testrail/6.5.5.1009/ad/README.md new file mode 100644 index 000000000..6f9123636 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.5.1009 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.5.1009/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.5.1009/ad/docker-compose.yml new file mode 100644 index 000000000..dcc194a9b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.5.1009" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.5.1009/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.5.1009/ad/docker-entrypoint.sh new file mode 100755 index 000000000..671fabcce --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.5.1009 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.5.1009/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.5.1009/ldap/Dockerfile new file mode 100644 index 000000000..422a7129e --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.5.1009 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.5.1009/ldap/Makefile b/linux/ecosystem/testrail/6.5.5.1009/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.5.1009/ldap/README.md b/linux/ecosystem/testrail/6.5.5.1009/ldap/README.md new file mode 100644 index 000000000..12babd2fb --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.5.1009 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.5.1009/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.5.1009/ldap/docker-compose.yml new file mode 100644 index 000000000..db422e17f --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.5.1009" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.5.1009/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.5.1009/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..12c7ff3f6 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.5.1009 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/.env b/linux/ecosystem/testrail/6.5.5.1009/main/.env new file mode 100644 index 000000000..146b97a50 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.5.1009 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/Dockerfile b/linux/ecosystem/testrail/6.5.5.1009/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/Makefile b/linux/ecosystem/testrail/6.5.5.1009/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/README.md b/linux/ecosystem/testrail/6.5.5.1009/main/README.md new file mode 100644 index 000000000..1e65b480e --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.5.5.1009 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.5.1009/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.5.1009/main/docker-compose.yml new file mode 100644 index 000000000..0794ade77 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.5.1009" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.5.1009/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.5.1009/main/docker-entrypoint.sh new file mode 100755 index 000000000..f6f0e4789 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.5.1009/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.5.1009" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.6.1014/ad/Dockerfile b/linux/ecosystem/testrail/6.5.6.1014/ad/Dockerfile new file mode 100644 index 000000000..7c09d1cb6 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.6.1014 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.6.1014/ad/Makefile b/linux/ecosystem/testrail/6.5.6.1014/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.6.1014/ad/README.md b/linux/ecosystem/testrail/6.5.6.1014/ad/README.md new file mode 100644 index 000000000..777757ca2 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.6.1014 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.6.1014/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.6.1014/ad/docker-compose.yml new file mode 100644 index 000000000..81e693019 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.6.1014" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.6.1014/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.6.1014/ad/docker-entrypoint.sh new file mode 100755 index 000000000..a33155ce0 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.6.1014 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.6.1014/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.6.1014/ldap/Dockerfile new file mode 100644 index 000000000..189ef667f --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.6.1014 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.6.1014/ldap/Makefile b/linux/ecosystem/testrail/6.5.6.1014/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.6.1014/ldap/README.md b/linux/ecosystem/testrail/6.5.6.1014/ldap/README.md new file mode 100644 index 000000000..cca95902c --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.6.1014 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.6.1014/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.6.1014/ldap/docker-compose.yml new file mode 100644 index 000000000..2f6ea0a0a --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.6.1014" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.6.1014/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.6.1014/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..c270ee01a --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.6.1014 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/.env b/linux/ecosystem/testrail/6.5.6.1014/main/.env new file mode 100644 index 000000000..559c35ce0 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.6.1014 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/Dockerfile b/linux/ecosystem/testrail/6.5.6.1014/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/Makefile b/linux/ecosystem/testrail/6.5.6.1014/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/README.md b/linux/ecosystem/testrail/6.5.6.1014/main/README.md new file mode 100644 index 000000000..d20394a42 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.5.6.1014 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.6.1014/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.6.1014/main/docker-compose.yml new file mode 100644 index 000000000..857f806e2 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.6.1014" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.6.1014/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.6.1014/main/docker-entrypoint.sh new file mode 100755 index 000000000..6e622ecfc --- /dev/null +++ b/linux/ecosystem/testrail/6.5.6.1014/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.6.1014" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.7.1000/ad/Dockerfile b/linux/ecosystem/testrail/6.5.7.1000/ad/Dockerfile new file mode 100644 index 000000000..c80869aef --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.7.1000 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.7.1000/ad/Makefile b/linux/ecosystem/testrail/6.5.7.1000/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.7.1000/ad/README.md b/linux/ecosystem/testrail/6.5.7.1000/ad/README.md new file mode 100644 index 000000000..bb45159b0 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.5.7.1000 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.7.1000/ad/docker-compose.yml b/linux/ecosystem/testrail/6.5.7.1000/ad/docker-compose.yml new file mode 100644 index 000000000..38b6125b8 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.5.7.1000" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.7.1000/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.7.1000/ad/docker-entrypoint.sh new file mode 100755 index 000000000..c3ff1d48e --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.7.1000 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.7.1000/ldap/Dockerfile b/linux/ecosystem/testrail/6.5.7.1000/ldap/Dockerfile new file mode 100644 index 000000000..8c3fc2324 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.5.7.1000 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.5.7.1000/ldap/Makefile b/linux/ecosystem/testrail/6.5.7.1000/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.7.1000/ldap/README.md b/linux/ecosystem/testrail/6.5.7.1000/ldap/README.md new file mode 100644 index 000000000..cf08e191a --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.5.7.1000 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.7.1000/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.5.7.1000/ldap/docker-compose.yml new file mode 100644 index 000000000..5a865202c --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.5.7.1000" + build: + context: . diff --git a/linux/ecosystem/testrail/6.5.7.1000/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.7.1000/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..e8170d7a8 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.7.1000 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/.env b/linux/ecosystem/testrail/6.5.7.1000/main/.env new file mode 100644 index 000000000..10836334b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.5.7.1000 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/Dockerfile b/linux/ecosystem/testrail/6.5.7.1000/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/Makefile b/linux/ecosystem/testrail/6.5.7.1000/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/README.md b/linux/ecosystem/testrail/6.5.7.1000/main/README.md new file mode 100644 index 000000000..6966b997b --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.5.7.1000 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/apache_testrail.conf b/linux/ecosystem/testrail/6.5.7.1000/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/docker-compose.yml b/linux/ecosystem/testrail/6.5.7.1000/main/docker-compose.yml new file mode 100644 index 000000000..09acb9348 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.5.7.1000" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.5.7.1000/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.5.7.1000/main/docker-entrypoint.sh new file mode 100755 index 000000000..790ac6fa4 --- /dev/null +++ b/linux/ecosystem/testrail/6.5.7.1000/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.5.7.1000" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.6.0.1156/ad/Dockerfile b/linux/ecosystem/testrail/6.6.0.1156/ad/Dockerfile new file mode 100644 index 000000000..68fd4a3bd --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.6.0.1156 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.6.0.1156/ad/Makefile b/linux/ecosystem/testrail/6.6.0.1156/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.6.0.1156/ad/README.md b/linux/ecosystem/testrail/6.6.0.1156/ad/README.md new file mode 100644 index 000000000..69daf28b3 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.6.0.1156 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.6.0.1156/ad/docker-compose.yml b/linux/ecosystem/testrail/6.6.0.1156/ad/docker-compose.yml new file mode 100644 index 000000000..80124486f --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.6.0.1156" + build: + context: . diff --git a/linux/ecosystem/testrail/6.6.0.1156/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.6.0.1156/ad/docker-entrypoint.sh new file mode 100755 index 000000000..da4d6b156 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.6.0.1156 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.6.0.1156/ldap/Dockerfile b/linux/ecosystem/testrail/6.6.0.1156/ldap/Dockerfile new file mode 100644 index 000000000..2ebaba34c --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.6.0.1156 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.6.0.1156/ldap/Makefile b/linux/ecosystem/testrail/6.6.0.1156/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.6.0.1156/ldap/README.md b/linux/ecosystem/testrail/6.6.0.1156/ldap/README.md new file mode 100644 index 000000000..429413bc6 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.6.0.1156 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.6.0.1156/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.6.0.1156/ldap/docker-compose.yml new file mode 100644 index 000000000..118d70ccd --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.6.0.1156" + build: + context: . diff --git a/linux/ecosystem/testrail/6.6.0.1156/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.6.0.1156/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..d62f5d22e --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.6.0.1156 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/.env b/linux/ecosystem/testrail/6.6.0.1156/main/.env new file mode 100644 index 000000000..10e8b0711 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.6.0.1156 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/Dockerfile b/linux/ecosystem/testrail/6.6.0.1156/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/Makefile b/linux/ecosystem/testrail/6.6.0.1156/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/README.md b/linux/ecosystem/testrail/6.6.0.1156/main/README.md new file mode 100644 index 000000000..714bde140 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.6.0.1156 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/apache_testrail.conf b/linux/ecosystem/testrail/6.6.0.1156/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/docker-compose.yml b/linux/ecosystem/testrail/6.6.0.1156/main/docker-compose.yml new file mode 100644 index 000000000..f18469077 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.6.0.1156" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.6.0.1156/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.6.0.1156/main/docker-entrypoint.sh new file mode 100755 index 000000000..b53f5e0ed --- /dev/null +++ b/linux/ecosystem/testrail/6.6.0.1156/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.6.0.1156" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.6.1.1166/ad/Dockerfile b/linux/ecosystem/testrail/6.6.1.1166/ad/Dockerfile new file mode 100644 index 000000000..5be518a0a --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.6.1.1166 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.6.1.1166/ad/Makefile b/linux/ecosystem/testrail/6.6.1.1166/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.6.1.1166/ad/README.md b/linux/ecosystem/testrail/6.6.1.1166/ad/README.md new file mode 100644 index 000000000..0f37da047 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.6.1.1166 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.6.1.1166/ad/docker-compose.yml b/linux/ecosystem/testrail/6.6.1.1166/ad/docker-compose.yml new file mode 100644 index 000000000..5529489d5 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.6.1.1166" + build: + context: . diff --git a/linux/ecosystem/testrail/6.6.1.1166/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.6.1.1166/ad/docker-entrypoint.sh new file mode 100755 index 000000000..36860ec3c --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.6.1.1166 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.6.1.1166/ldap/Dockerfile b/linux/ecosystem/testrail/6.6.1.1166/ldap/Dockerfile new file mode 100644 index 000000000..03a5b5e9f --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.6.1.1166 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.6.1.1166/ldap/Makefile b/linux/ecosystem/testrail/6.6.1.1166/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.6.1.1166/ldap/README.md b/linux/ecosystem/testrail/6.6.1.1166/ldap/README.md new file mode 100644 index 000000000..9aaf4910c --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.6.1.1166 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.6.1.1166/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.6.1.1166/ldap/docker-compose.yml new file mode 100644 index 000000000..3112ad418 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.6.1.1166" + build: + context: . diff --git a/linux/ecosystem/testrail/6.6.1.1166/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.6.1.1166/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..991acdb38 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.6.1.1166 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/.env b/linux/ecosystem/testrail/6.6.1.1166/main/.env new file mode 100644 index 000000000..582820b1a --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.6.1.1166 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/Dockerfile b/linux/ecosystem/testrail/6.6.1.1166/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/Makefile b/linux/ecosystem/testrail/6.6.1.1166/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/README.md b/linux/ecosystem/testrail/6.6.1.1166/main/README.md new file mode 100644 index 000000000..1edfa7c3a --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.6.1.1166 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/apache_testrail.conf b/linux/ecosystem/testrail/6.6.1.1166/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/docker-compose.yml b/linux/ecosystem/testrail/6.6.1.1166/main/docker-compose.yml new file mode 100644 index 000000000..8544c9779 --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.6.1.1166" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.6.1.1166/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.6.1.1166/main/docker-entrypoint.sh new file mode 100755 index 000000000..b6fa1fd5e --- /dev/null +++ b/linux/ecosystem/testrail/6.6.1.1166/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.6.1.1166" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.1.1020/ad/Dockerfile b/linux/ecosystem/testrail/6.7.1.1020/ad/Dockerfile new file mode 100644 index 000000000..4d903d337 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.7.1.1020 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.7.1.1020/ad/Makefile b/linux/ecosystem/testrail/6.7.1.1020/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.1.1020/ad/README.md b/linux/ecosystem/testrail/6.7.1.1020/ad/README.md new file mode 100644 index 000000000..e6c1e618c --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.7.1.1020 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.1.1020/ad/docker-compose.yml b/linux/ecosystem/testrail/6.7.1.1020/ad/docker-compose.yml new file mode 100644 index 000000000..782835b36 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.7.1.1020" + build: + context: . diff --git a/linux/ecosystem/testrail/6.7.1.1020/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.1.1020/ad/docker-entrypoint.sh new file mode 100755 index 000000000..a9ace7a41 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.1.1020 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.1.1020/ldap/Dockerfile b/linux/ecosystem/testrail/6.7.1.1020/ldap/Dockerfile new file mode 100644 index 000000000..4e89cec8c --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.7.1.1020 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.7.1.1020/ldap/Makefile b/linux/ecosystem/testrail/6.7.1.1020/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.1.1020/ldap/README.md b/linux/ecosystem/testrail/6.7.1.1020/ldap/README.md new file mode 100644 index 000000000..d5b930a64 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.7.1.1020 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.1.1020/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.7.1.1020/ldap/docker-compose.yml new file mode 100644 index 000000000..136e81d56 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.7.1.1020" + build: + context: . diff --git a/linux/ecosystem/testrail/6.7.1.1020/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.1.1020/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..5a7172a56 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.1.1020 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/.env b/linux/ecosystem/testrail/6.7.1.1020/main/.env new file mode 100644 index 000000000..226e005f8 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.7.1.1020 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/Dockerfile b/linux/ecosystem/testrail/6.7.1.1020/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/Makefile b/linux/ecosystem/testrail/6.7.1.1020/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/README.md b/linux/ecosystem/testrail/6.7.1.1020/main/README.md new file mode 100644 index 000000000..c8ffabb11 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.7.1.1020 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/apache_testrail.conf b/linux/ecosystem/testrail/6.7.1.1020/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/docker-compose.yml b/linux/ecosystem/testrail/6.7.1.1020/main/docker-compose.yml new file mode 100644 index 000000000..3d00d4448 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.7.1.1020" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.7.1.1020/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.1.1020/main/docker-entrypoint.sh new file mode 100755 index 000000000..5a0689b31 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.1.1020/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.1.1020" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.2.1037/ad/Dockerfile b/linux/ecosystem/testrail/6.7.2.1037/ad/Dockerfile new file mode 100644 index 000000000..51f2351ea --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.7.2.1037 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.7.2.1037/ad/Makefile b/linux/ecosystem/testrail/6.7.2.1037/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.2.1037/ad/README.md b/linux/ecosystem/testrail/6.7.2.1037/ad/README.md new file mode 100644 index 000000000..0f1bc7a5f --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.7.2.1037 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.2.1037/ad/docker-compose.yml b/linux/ecosystem/testrail/6.7.2.1037/ad/docker-compose.yml new file mode 100644 index 000000000..8ea5233f3 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.7.2.1037" + build: + context: . diff --git a/linux/ecosystem/testrail/6.7.2.1037/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.2.1037/ad/docker-entrypoint.sh new file mode 100755 index 000000000..705b865da --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.2.1037 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.2.1037/ldap/Dockerfile b/linux/ecosystem/testrail/6.7.2.1037/ldap/Dockerfile new file mode 100644 index 000000000..92fc369d3 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.7.2.1037 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.7.2.1037/ldap/Makefile b/linux/ecosystem/testrail/6.7.2.1037/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.2.1037/ldap/README.md b/linux/ecosystem/testrail/6.7.2.1037/ldap/README.md new file mode 100644 index 000000000..4a7100e53 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.7.2.1037 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.2.1037/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.7.2.1037/ldap/docker-compose.yml new file mode 100644 index 000000000..e30831a47 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.7.2.1037" + build: + context: . diff --git a/linux/ecosystem/testrail/6.7.2.1037/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.2.1037/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..280484c16 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.2.1037 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/.env b/linux/ecosystem/testrail/6.7.2.1037/main/.env new file mode 100644 index 000000000..cbcaea13b --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.7.2.1037 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/Dockerfile b/linux/ecosystem/testrail/6.7.2.1037/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/Makefile b/linux/ecosystem/testrail/6.7.2.1037/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/README.md b/linux/ecosystem/testrail/6.7.2.1037/main/README.md new file mode 100644 index 000000000..2685896e4 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.7.2.1037 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/apache_testrail.conf b/linux/ecosystem/testrail/6.7.2.1037/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/docker-compose.yml b/linux/ecosystem/testrail/6.7.2.1037/main/docker-compose.yml new file mode 100644 index 000000000..535449047 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.7.2.1037" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.7.2.1037/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.2.1037/main/docker-entrypoint.sh new file mode 100755 index 000000000..9c0316faf --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1037/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.2.1037" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.2.1043/ad/Dockerfile b/linux/ecosystem/testrail/6.7.2.1043/ad/Dockerfile new file mode 100644 index 000000000..75401b10c --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.7.2.1043 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.7.2.1043/ad/Makefile b/linux/ecosystem/testrail/6.7.2.1043/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.2.1043/ad/README.md b/linux/ecosystem/testrail/6.7.2.1043/ad/README.md new file mode 100644 index 000000000..f0926a7e5 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:6.7.2.1043 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.2.1043/ad/docker-compose.yml b/linux/ecosystem/testrail/6.7.2.1043/ad/docker-compose.yml new file mode 100644 index 000000000..f38acee3b --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-6.7.2.1043" + build: + context: . diff --git a/linux/ecosystem/testrail/6.7.2.1043/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.2.1043/ad/docker-entrypoint.sh new file mode 100755 index 000000000..c6267fc1e --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.2.1043 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.2.1043/ldap/Dockerfile b/linux/ecosystem/testrail/6.7.2.1043/ldap/Dockerfile new file mode 100644 index 000000000..80b7734a5 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:6.7.2.1043 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/6.7.2.1043/ldap/Makefile b/linux/ecosystem/testrail/6.7.2.1043/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.2.1043/ldap/README.md b/linux/ecosystem/testrail/6.7.2.1043/ldap/README.md new file mode 100644 index 000000000..e35cfb960 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-6.7.2.1043 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.2.1043/ldap/docker-compose.yml b/linux/ecosystem/testrail/6.7.2.1043/ldap/docker-compose.yml new file mode 100644 index 000000000..01edb07e7 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-6.7.2.1043" + build: + context: . diff --git a/linux/ecosystem/testrail/6.7.2.1043/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.2.1043/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..8c43b62a8 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.2.1043 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/.env b/linux/ecosystem/testrail/6.7.2.1043/main/.env new file mode 100644 index 000000000..66777e8a1 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=6.7.2.1043 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/Dockerfile b/linux/ecosystem/testrail/6.7.2.1043/main/Dockerfile new file mode 100644 index 000000000..19bad950b --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.2 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/Makefile b/linux/ecosystem/testrail/6.7.2.1043/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/README.md b/linux/ecosystem/testrail/6.7.2.1043/main/README.md new file mode 100644 index 000000000..d36a0302b --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.2` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:6.7.2.1043 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/apache_testrail.conf b/linux/ecosystem/testrail/6.7.2.1043/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/docker-compose.yml b/linux/ecosystem/testrail/6.7.2.1043/main/docker-compose.yml new file mode 100644 index 000000000..0227928d4 --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:6.7.2.1043" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/6.7.2.1043/main/docker-entrypoint.sh b/linux/ecosystem/testrail/6.7.2.1043/main/docker-entrypoint.sh new file mode 100755 index 000000000..a4927574f --- /dev/null +++ b/linux/ecosystem/testrail/6.7.2.1043/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 6.7.2.1043" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.0.1057/ad/Dockerfile b/linux/ecosystem/testrail/7.0.0.1057/ad/Dockerfile new file mode 100644 index 000000000..15b8d4ee8 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.0.1057 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.0.1057/ad/Makefile b/linux/ecosystem/testrail/7.0.0.1057/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.0.1057/ad/README.md b/linux/ecosystem/testrail/7.0.0.1057/ad/README.md new file mode 100644 index 000000000..aeb7d8c58 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.0.0.1057 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.0.1057/ad/docker-compose.yml b/linux/ecosystem/testrail/7.0.0.1057/ad/docker-compose.yml new file mode 100644 index 000000000..fdf56b6c7 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.0.0.1057" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.0.1057/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.0.1057/ad/docker-entrypoint.sh new file mode 100755 index 000000000..803100872 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.0.1057 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.0.1057/ldap/Dockerfile b/linux/ecosystem/testrail/7.0.0.1057/ldap/Dockerfile new file mode 100644 index 000000000..b3e11174e --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.0.1057 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.0.1057/ldap/Makefile b/linux/ecosystem/testrail/7.0.0.1057/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.0.1057/ldap/README.md b/linux/ecosystem/testrail/7.0.0.1057/ldap/README.md new file mode 100644 index 000000000..98130a370 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.0.0.1057 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.0.1057/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.0.0.1057/ldap/docker-compose.yml new file mode 100644 index 000000000..9ea88de62 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.0.0.1057" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.0.1057/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.0.1057/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..a33080ce1 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.0.1057 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/.env b/linux/ecosystem/testrail/7.0.0.1057/main/.env new file mode 100644 index 000000000..8ba046ecb --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.0.0.1057 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/Dockerfile b/linux/ecosystem/testrail/7.0.0.1057/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/Makefile b/linux/ecosystem/testrail/7.0.0.1057/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/README.md b/linux/ecosystem/testrail/7.0.0.1057/main/README.md new file mode 100644 index 000000000..12cdb3870 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.0.0.1057 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/apache_testrail.conf b/linux/ecosystem/testrail/7.0.0.1057/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/docker-compose.yml b/linux/ecosystem/testrail/7.0.0.1057/main/docker-compose.yml new file mode 100644 index 000000000..3a4728a29 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.0.0.1057" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.0.1057/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.0.1057/main/docker-entrypoint.sh new file mode 100755 index 000000000..06ec1d0a0 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.0.1057/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.0.1057" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.1.1002/ad/Dockerfile b/linux/ecosystem/testrail/7.0.1.1002/ad/Dockerfile new file mode 100644 index 000000000..789d53b2f --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.1.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.1.1002/ad/Makefile b/linux/ecosystem/testrail/7.0.1.1002/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.1.1002/ad/README.md b/linux/ecosystem/testrail/7.0.1.1002/ad/README.md new file mode 100644 index 000000000..3d796cc45 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.0.1.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.1.1002/ad/docker-compose.yml b/linux/ecosystem/testrail/7.0.1.1002/ad/docker-compose.yml new file mode 100644 index 000000000..2df562821 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.0.1.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.1.1002/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.1.1002/ad/docker-entrypoint.sh new file mode 100755 index 000000000..4ae36a0a8 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.1.1002 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.1.1002/ldap/Dockerfile b/linux/ecosystem/testrail/7.0.1.1002/ldap/Dockerfile new file mode 100644 index 000000000..5034ffedb --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.1.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.1.1002/ldap/Makefile b/linux/ecosystem/testrail/7.0.1.1002/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.1.1002/ldap/README.md b/linux/ecosystem/testrail/7.0.1.1002/ldap/README.md new file mode 100644 index 000000000..abc54d869 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.0.1.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.1.1002/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.0.1.1002/ldap/docker-compose.yml new file mode 100644 index 000000000..b1c9e1093 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.0.1.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.1.1002/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.1.1002/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..5903d5fe9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.1.1002 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/.env b/linux/ecosystem/testrail/7.0.1.1002/main/.env new file mode 100644 index 000000000..f615e749d --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.0.1.1002 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/Dockerfile b/linux/ecosystem/testrail/7.0.1.1002/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/Makefile b/linux/ecosystem/testrail/7.0.1.1002/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/README.md b/linux/ecosystem/testrail/7.0.1.1002/main/README.md new file mode 100644 index 000000000..801c0a18c --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.0.1.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/apache_testrail.conf b/linux/ecosystem/testrail/7.0.1.1002/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/docker-compose.yml b/linux/ecosystem/testrail/7.0.1.1002/main/docker-compose.yml new file mode 100644 index 000000000..7060fc75d --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.0.1.1002" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.1.1002/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.1.1002/main/docker-entrypoint.sh new file mode 100755 index 000000000..ed8e7153f --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1002/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.1.1002" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.1.1013/ad/Dockerfile b/linux/ecosystem/testrail/7.0.1.1013/ad/Dockerfile new file mode 100644 index 000000000..dbf68ca10 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.1.1013 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.1.1013/ad/Makefile b/linux/ecosystem/testrail/7.0.1.1013/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.1.1013/ad/README.md b/linux/ecosystem/testrail/7.0.1.1013/ad/README.md new file mode 100644 index 000000000..f6146b377 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.0.1.1013 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.1.1013/ad/docker-compose.yml b/linux/ecosystem/testrail/7.0.1.1013/ad/docker-compose.yml new file mode 100644 index 000000000..a6a41a06d --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.0.1.1013" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.1.1013/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.1.1013/ad/docker-entrypoint.sh new file mode 100755 index 000000000..812e05f6a --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.1.1013 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.1.1013/ldap/Dockerfile b/linux/ecosystem/testrail/7.0.1.1013/ldap/Dockerfile new file mode 100644 index 000000000..de6244ae5 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.1.1013 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.1.1013/ldap/Makefile b/linux/ecosystem/testrail/7.0.1.1013/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.1.1013/ldap/README.md b/linux/ecosystem/testrail/7.0.1.1013/ldap/README.md new file mode 100644 index 000000000..1ec9865b5 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.0.1.1013 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.1.1013/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.0.1.1013/ldap/docker-compose.yml new file mode 100644 index 000000000..67d282952 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.0.1.1013" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.1.1013/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.1.1013/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..1230e891a --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.1.1013 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/.env b/linux/ecosystem/testrail/7.0.1.1013/main/.env new file mode 100644 index 000000000..45798e1a7 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.0.1.1013 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/Dockerfile b/linux/ecosystem/testrail/7.0.1.1013/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/Makefile b/linux/ecosystem/testrail/7.0.1.1013/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/README.md b/linux/ecosystem/testrail/7.0.1.1013/main/README.md new file mode 100644 index 000000000..0e18763e9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.0.1.1013 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/apache_testrail.conf b/linux/ecosystem/testrail/7.0.1.1013/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/docker-compose.yml b/linux/ecosystem/testrail/7.0.1.1013/main/docker-compose.yml new file mode 100644 index 000000000..e92580dc2 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.0.1.1013" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.1.1013/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.1.1013/main/docker-entrypoint.sh new file mode 100755 index 000000000..cdab9e3d5 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.1.1013/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.1.1013" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1014/ad/Dockerfile b/linux/ecosystem/testrail/7.0.2.1014/ad/Dockerfile new file mode 100644 index 000000000..9530edb4e --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.2.1014 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.2.1014/ad/Makefile b/linux/ecosystem/testrail/7.0.2.1014/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.2.1014/ad/README.md b/linux/ecosystem/testrail/7.0.2.1014/ad/README.md new file mode 100644 index 000000000..2a2336882 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.0.2.1014 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.2.1014/ad/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1014/ad/docker-compose.yml new file mode 100644 index 000000000..d1fc8c7da --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.0.2.1014" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.2.1014/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1014/ad/docker-entrypoint.sh new file mode 100755 index 000000000..0b1497d94 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.2.1014 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1014/ldap/Dockerfile b/linux/ecosystem/testrail/7.0.2.1014/ldap/Dockerfile new file mode 100644 index 000000000..f18b10070 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.2.1014 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.2.1014/ldap/Makefile b/linux/ecosystem/testrail/7.0.2.1014/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.2.1014/ldap/README.md b/linux/ecosystem/testrail/7.0.2.1014/ldap/README.md new file mode 100644 index 000000000..b4090ec3d --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.0.2.1014 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.2.1014/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1014/ldap/docker-compose.yml new file mode 100644 index 000000000..6e8089fe9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.0.2.1014" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.2.1014/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1014/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..e6659b208 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.2.1014 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/.env b/linux/ecosystem/testrail/7.0.2.1014/main/.env new file mode 100644 index 000000000..f8d5c0400 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.0.2.1014 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/Dockerfile b/linux/ecosystem/testrail/7.0.2.1014/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/Makefile b/linux/ecosystem/testrail/7.0.2.1014/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/README.md b/linux/ecosystem/testrail/7.0.2.1014/main/README.md new file mode 100644 index 000000000..bf018e1f1 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.0.2.1014 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/apache_testrail.conf b/linux/ecosystem/testrail/7.0.2.1014/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1014/main/docker-compose.yml new file mode 100644 index 000000000..a2bca0853 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.0.2.1014" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.2.1014/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1014/main/docker-entrypoint.sh new file mode 100755 index 000000000..3c1b997ca --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1014/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.2.1014" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1015/ad/Dockerfile b/linux/ecosystem/testrail/7.0.2.1015/ad/Dockerfile new file mode 100644 index 000000000..8cfff21f5 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.2.1015 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.2.1015/ad/Makefile b/linux/ecosystem/testrail/7.0.2.1015/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.2.1015/ad/README.md b/linux/ecosystem/testrail/7.0.2.1015/ad/README.md new file mode 100644 index 000000000..ae5101a1b --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.0.2.1015 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.2.1015/ad/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1015/ad/docker-compose.yml new file mode 100644 index 000000000..1a7a46321 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.0.2.1015" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.2.1015/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1015/ad/docker-entrypoint.sh new file mode 100755 index 000000000..dd95921b0 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.2.1015 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1015/ldap/Dockerfile b/linux/ecosystem/testrail/7.0.2.1015/ldap/Dockerfile new file mode 100644 index 000000000..f8785d98c --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.0.2.1015 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.0.2.1015/ldap/Makefile b/linux/ecosystem/testrail/7.0.2.1015/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.2.1015/ldap/README.md b/linux/ecosystem/testrail/7.0.2.1015/ldap/README.md new file mode 100644 index 000000000..46444f638 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.0.2.1015 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.2.1015/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1015/ldap/docker-compose.yml new file mode 100644 index 000000000..20274e470 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.0.2.1015" + build: + context: . diff --git a/linux/ecosystem/testrail/7.0.2.1015/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1015/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..1b961f4c3 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.2.1015 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/.env b/linux/ecosystem/testrail/7.0.2.1015/main/.env new file mode 100644 index 000000000..2f8c5efdd --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.0.2.1015 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/Dockerfile b/linux/ecosystem/testrail/7.0.2.1015/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/Makefile b/linux/ecosystem/testrail/7.0.2.1015/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/README.md b/linux/ecosystem/testrail/7.0.2.1015/main/README.md new file mode 100644 index 000000000..f56a2a0b5 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.0.2.1015 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/apache_testrail.conf b/linux/ecosystem/testrail/7.0.2.1015/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1015/main/docker-compose.yml new file mode 100644 index 000000000..75c569122 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.0.2.1015" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.2.1015/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1015/main/docker-entrypoint.sh new file mode 100755 index 000000000..4d40d1678 --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1015/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.0.2.1015" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.0.2.1016/ad/README.md b/linux/ecosystem/testrail/7.0.2.1016/ad/README.md index 1aae0e92d..0d78f707e 100644 --- a/linux/ecosystem/testrail/7.0.2.1016/ad/README.md +++ b/linux/ecosystem/testrail/7.0.2.1016/ad/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail-ad-:7.0.2.1016 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.0.2.1016/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1016/ad/docker-entrypoint.sh index 2a7954f51..8f52583a3 100755 --- a/linux/ecosystem/testrail/7.0.2.1016/ad/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.0.2.1016/ad/docker-entrypoint.sh @@ -1,6 +1,8 @@ #!/bin/bash -echo "[testrail] Starting testrail service" +echo "[testrail] Welcome to Testrail 7.0.2.1016 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" ################################################################################## diff --git a/linux/ecosystem/testrail/7.0.2.1016/ldap/README.md b/linux/ecosystem/testrail/7.0.2.1016/ldap/README.md index 1aae0e92d..b0ba95b73 100644 --- a/linux/ecosystem/testrail/7.0.2.1016/ldap/README.md +++ b/linux/ecosystem/testrail/7.0.2.1016/ldap/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:auth-ldap-7.0.2.1016 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.0.2.1016/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1016/ldap/docker-entrypoint.sh index f25d4d764..3b126f218 100755 --- a/linux/ecosystem/testrail/7.0.2.1016/ldap/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.0.2.1016/ldap/docker-entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail 7.0.2.1016 with LDAP plugin" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/.env b/linux/ecosystem/testrail/7.0.2.1016/main/.env new file mode 100644 index 000000000..ab8c9d5be --- /dev/null +++ b/linux/ecosystem/testrail/7.0.2.1016/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.0.2.1016 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/Dockerfile b/linux/ecosystem/testrail/7.0.2.1016/main/Dockerfile index 20093ded2..75d0e4504 100644 --- a/linux/ecosystem/testrail/7.0.2.1016/main/Dockerfile +++ b/linux/ecosystem/testrail/7.0.2.1016/main/Dockerfile @@ -1,39 +1,13 @@ FROM epicmorg/apache2:php7.4 -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini - -############################################################################## -# Cassandra CPP Support Install -############################################################################## - -############################################################################## -# Cassandra PHP Drivers Install -############################################################################## - -COPY addons/cassandra-php-driver /tmp/cassandra-php-driver -RUN cd /tmp/cassandra-php-driver && \ - dpkg -i ./multiarch-support_2.28-10+deb10u1_amd64.deb && \ - dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ - dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb - -COPY addons/Drivers.Cassandra/Linux/7.4/cassandra.so ${PHP_MODULE_PATH} -RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ - php -m && \ - php -v - ############################################################################## # Testrail Install ############################################################################## -ENV TESTRAIL_VERSION=7.0.2.1016 -ENV DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + ENV TR_DEFAULT_TASK_EXECUTION=60 ENV TESTRAIL_RELEASE_DIR=/testrail-release @@ -55,8 +29,7 @@ ENV TR_CONFIGPATH="/var/www/testrail/config/" ENV OPENSSL_CONF=/etc/ssl/ -RUN \ - apt-get update && \ +RUN apt-get update && \ apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ apt-get clean && \ echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ @@ -64,20 +37,20 @@ RUN \ rm -rf /run.sh && \ rm -rf /tmp/* +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} -RUN \ - echo "[testrail] Preparing folders" && \ - mkdir -p ${TESTRAIL_RELEASE_DIR} && \ - mkdir -p ${TR_WWW_PATH} && \ - mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ - echo "[testrail] Downloading and installing" && \ - wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ - chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ - unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ - chown -R www-data:www-data ${TR_WWW_PATH} && \ - ls -las ${TR_WWW_PATH} && \ - chown -R www-data:www-data ${TR_OPT_PATH} && \ - ls -las ${TR_OPT_PATH} +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/README.md b/linux/ecosystem/testrail/7.0.2.1016/main/README.md index 1aae0e92d..1daa5c339 100644 --- a/linux/ecosystem/testrail/7.0.2.1016/main/README.md +++ b/linux/ecosystem/testrail/7.0.2.1016/main/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:7.0.2.1016 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/README.MD b/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/README.MD deleted file mode 100644 index 8616d54de..000000000 --- a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/README.MD +++ /dev/null @@ -1,24 +0,0 @@ -# Cassandra PHP drivers for 7.3 and 7.4 - -`git clone https://git.assembla.com/gurock/Drivers.Cassandra.git` - -Drivers are built from sources of the awesome DataStax PHP driver available [here](https://github.com/datastax/php-driver) - -### Important: PHP driver requires C++ driver installed. It can be found [here](https://github.com/datastax/cpp-driver) - - - -# Copyright - -© DataStax, Inc. - -Licensed under the Apache License, Version 2.0 (the “License”); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll b/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll deleted file mode 100644 index d42d75acf..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll b/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll deleted file mode 100644 index 4d5e0694a..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll b/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll deleted file mode 100644 index 587141b9b..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll b/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll deleted file mode 100644 index 3b3237e27..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb deleted file mode 100644 index f0918d7d6..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb deleted file mode 100644 index edf602ecf..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb deleted file mode 100644 index 951f84d41..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/download.sh b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/download.sh deleted file mode 100755 index fec710926..000000000 --- a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/download.sh +++ /dev/null @@ -1 +0,0 @@ -wget -r -k -l 7 -p -E -nc --reject="index.html*" --user-agent=Mozilla/5.0 https://downloads.datastax.com/cpp-driver/ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb deleted file mode 100644 index 1fb9f44dd..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb deleted file mode 100644 index 3ac90a83d..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb deleted file mode 100644 index 0e9e1301d..000000000 Binary files a/linux/ecosystem/testrail/7.0.2.1016/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/docker-compose.yml b/linux/ecosystem/testrail/7.0.2.1016/main/docker-compose.yml index 55b8db48f..2dc2ba44c 100644 --- a/linux/ecosystem/testrail/7.0.2.1016/main/docker-compose.yml +++ b/linux/ecosystem/testrail/7.0.2.1016/main/docker-compose.yml @@ -4,3 +4,6 @@ services: image: "epicmorg/testrail:7.0.2.1016" build: context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.0.2.1016/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.0.2.1016/main/docker-entrypoint.sh index 17af00304..9ce3b9630 100755 --- a/linux/ecosystem/testrail/7.0.2.1016/main/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.0.2.1016/main/docker-entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail 7.0.2.1016" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/linux/ecosystem/testrail/7.4.1.8079/ad/Dockerfile b/linux/ecosystem/testrail/7.4.1.8079/ad/Dockerfile new file mode 100644 index 000000000..24728d658 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.4.1.8079 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.4.1.8079/ad/Makefile b/linux/ecosystem/testrail/7.4.1.8079/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.4.1.8079/ad/README.md b/linux/ecosystem/testrail/7.4.1.8079/ad/README.md new file mode 100644 index 000000000..32b1569bb --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.4.1.8079 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.4.1.8079/ad/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8079/ad/docker-compose.yml new file mode 100644 index 000000000..3f944970c --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.4.1.8079" + build: + context: . diff --git a/linux/ecosystem/testrail/7.4.1.8079/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8079/ad/docker-entrypoint.sh new file mode 100755 index 000000000..6a01a3156 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.4.1.8079 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.4.1.8079/ldap/Dockerfile b/linux/ecosystem/testrail/7.4.1.8079/ldap/Dockerfile new file mode 100644 index 000000000..230ebd910 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.4.1.8079 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.4.1.8079/ldap/Makefile b/linux/ecosystem/testrail/7.4.1.8079/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.4.1.8079/ldap/README.md b/linux/ecosystem/testrail/7.4.1.8079/ldap/README.md new file mode 100644 index 000000000..4f32488fd --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.4.1.8079 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.4.1.8079/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8079/ldap/docker-compose.yml new file mode 100644 index 000000000..8ef58213c --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.4.1.8079" + build: + context: . diff --git a/linux/ecosystem/testrail/7.4.1.8079/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8079/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..2f842165a --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.4.1.8079 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/.env b/linux/ecosystem/testrail/7.4.1.8079/main/.env new file mode 100644 index 000000000..e1f882d81 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.4.1.8079 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/Dockerfile b/linux/ecosystem/testrail/7.4.1.8079/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/Makefile b/linux/ecosystem/testrail/7.4.1.8079/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/README.md b/linux/ecosystem/testrail/7.4.1.8079/main/README.md new file mode 100644 index 000000000..572305ea1 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.4.1.8079 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/apache_testrail.conf b/linux/ecosystem/testrail/7.4.1.8079/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8079/main/docker-compose.yml new file mode 100644 index 000000000..2d8d533fc --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.4.1.8079" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.4.1.8079/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8079/main/docker-entrypoint.sh new file mode 100755 index 000000000..47c667d2b --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8079/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.4.1.8079" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.4.1.8091/ad/Dockerfile b/linux/ecosystem/testrail/7.4.1.8091/ad/Dockerfile new file mode 100644 index 000000000..5be5f2229 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.4.1.8091 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.4.1.8091/ad/Makefile b/linux/ecosystem/testrail/7.4.1.8091/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.4.1.8091/ad/README.md b/linux/ecosystem/testrail/7.4.1.8091/ad/README.md new file mode 100644 index 000000000..97a49028f --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.4.1.8091 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.4.1.8091/ad/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8091/ad/docker-compose.yml new file mode 100644 index 000000000..ff0594e08 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.4.1.8091" + build: + context: . diff --git a/linux/ecosystem/testrail/7.4.1.8091/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8091/ad/docker-entrypoint.sh new file mode 100755 index 000000000..f42050f16 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.4.1.8091 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.4.1.8091/ldap/Dockerfile b/linux/ecosystem/testrail/7.4.1.8091/ldap/Dockerfile new file mode 100644 index 000000000..5f5b6d1c4 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.4.1.8091 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.4.1.8091/ldap/Makefile b/linux/ecosystem/testrail/7.4.1.8091/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.4.1.8091/ldap/README.md b/linux/ecosystem/testrail/7.4.1.8091/ldap/README.md new file mode 100644 index 000000000..8b5bd464e --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.4.1.8091 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.4.1.8091/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8091/ldap/docker-compose.yml new file mode 100644 index 000000000..deb0e7476 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.4.1.8091" + build: + context: . diff --git a/linux/ecosystem/testrail/7.4.1.8091/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8091/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..9a1989435 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.4.1.8091 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/.env b/linux/ecosystem/testrail/7.4.1.8091/main/.env new file mode 100644 index 000000000..0d20a9de2 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.4.1.8091 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/Dockerfile b/linux/ecosystem/testrail/7.4.1.8091/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/Makefile b/linux/ecosystem/testrail/7.4.1.8091/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/README.md b/linux/ecosystem/testrail/7.4.1.8091/main/README.md new file mode 100644 index 000000000..1e7c2a9a1 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.4.1.8091 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/apache_testrail.conf b/linux/ecosystem/testrail/7.4.1.8091/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8091/main/docker-compose.yml new file mode 100644 index 000000000..0e8d265ff --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.4.1.8091" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.4.1.8091/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8091/main/docker-entrypoint.sh new file mode 100755 index 000000000..e657b00c3 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8091/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.4.1.8091" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.4.1.8092/ad/README.md b/linux/ecosystem/testrail/7.4.1.8092/ad/README.md index 1aae0e92d..fe3c3db35 100644 --- a/linux/ecosystem/testrail/7.4.1.8092/ad/README.md +++ b/linux/ecosystem/testrail/7.4.1.8092/ad/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail-ad-:7.4.1.8092 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.4.1.8092/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8092/ad/docker-entrypoint.sh index 2a7954f51..83f2d3f40 100755 --- a/linux/ecosystem/testrail/7.4.1.8092/ad/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.4.1.8092/ad/docker-entrypoint.sh @@ -1,6 +1,8 @@ #!/bin/bash -echo "[testrail] Starting testrail service" +echo "[testrail] Welcome to Testrail 7.4.1.8092 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" ################################################################################## diff --git a/linux/ecosystem/testrail/7.4.1.8092/ldap/README.md b/linux/ecosystem/testrail/7.4.1.8092/ldap/README.md index 1aae0e92d..67f13454a 100644 --- a/linux/ecosystem/testrail/7.4.1.8092/ldap/README.md +++ b/linux/ecosystem/testrail/7.4.1.8092/ldap/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:auth-ldap-7.4.1.8092 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.4.1.8092/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8092/ldap/docker-entrypoint.sh index f25d4d764..72555a6bb 100755 --- a/linux/ecosystem/testrail/7.4.1.8092/ldap/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.4.1.8092/ldap/docker-entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail 7.4.1.8092 with LDAP plugin" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/.env b/linux/ecosystem/testrail/7.4.1.8092/main/.env new file mode 100644 index 000000000..908dee0a2 --- /dev/null +++ b/linux/ecosystem/testrail/7.4.1.8092/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.4.1.8092 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/Dockerfile b/linux/ecosystem/testrail/7.4.1.8092/main/Dockerfile index 63e8c1c98..75d0e4504 100644 --- a/linux/ecosystem/testrail/7.4.1.8092/main/Dockerfile +++ b/linux/ecosystem/testrail/7.4.1.8092/main/Dockerfile @@ -1,39 +1,13 @@ FROM epicmorg/apache2:php7.4 -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini - -############################################################################## -# Cassandra CPP Support Install -############################################################################## - -############################################################################## -# Cassandra PHP Drivers Install -############################################################################## - -COPY addons/cassandra-php-driver /tmp/cassandra-php-driver -RUN cd /tmp/cassandra-php-driver && \ - dpkg -i ./multiarch-support_2.28-10+deb10u1_amd64.deb && \ - dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ - dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb - -COPY addons/Drivers.Cassandra/Linux/7.4/cassandra.so ${PHP_MODULE_PATH} -RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ - php -m && \ - php -v - ############################################################################## # Testrail Install ############################################################################## -ENV TESTRAIL_VERSION=7.4.1.8092 -ENV DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + ENV TR_DEFAULT_TASK_EXECUTION=60 ENV TESTRAIL_RELEASE_DIR=/testrail-release @@ -55,8 +29,7 @@ ENV TR_CONFIGPATH="/var/www/testrail/config/" ENV OPENSSL_CONF=/etc/ssl/ -RUN \ - apt-get update && \ +RUN apt-get update && \ apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ apt-get clean && \ echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ @@ -64,20 +37,20 @@ RUN \ rm -rf /run.sh && \ rm -rf /tmp/* +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} -RUN \ - echo "[testrail] Preparing folders" && \ - mkdir -p ${TESTRAIL_RELEASE_DIR} && \ - mkdir -p ${TR_WWW_PATH} && \ - mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ - echo "[testrail] Downloading and installing" && \ - wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ - chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ - unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ - chown -R www-data:www-data ${TR_WWW_PATH} && \ - ls -las ${TR_WWW_PATH} && \ - chown -R www-data:www-data ${TR_OPT_PATH} && \ - ls -las ${TR_OPT_PATH} +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/README.md b/linux/ecosystem/testrail/7.4.1.8092/main/README.md index 1aae0e92d..e5a918610 100644 --- a/linux/ecosystem/testrail/7.4.1.8092/main/README.md +++ b/linux/ecosystem/testrail/7.4.1.8092/main/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:7.4.1.8092 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so deleted file mode 100755 index 48ec4a0af..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so deleted file mode 100755 index 9f6332a44..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/README.MD b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/README.MD deleted file mode 100644 index 8616d54de..000000000 --- a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/README.MD +++ /dev/null @@ -1,24 +0,0 @@ -# Cassandra PHP drivers for 7.3 and 7.4 - -`git clone https://git.assembla.com/gurock/Drivers.Cassandra.git` - -Drivers are built from sources of the awesome DataStax PHP driver available [here](https://github.com/datastax/php-driver) - -### Important: PHP driver requires C++ driver installed. It can be found [here](https://github.com/datastax/cpp-driver) - - - -# Copyright - -© DataStax, Inc. - -Licensed under the Apache License, Version 2.0 (the “License”); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll deleted file mode 100644 index d42d75acf..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll deleted file mode 100644 index 4d5e0694a..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll deleted file mode 100644 index 587141b9b..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll b/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll deleted file mode 100644 index 3b3237e27..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb deleted file mode 100644 index f0918d7d6..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb deleted file mode 100644 index edf602ecf..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb deleted file mode 100644 index 951f84d41..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/download.sh b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/download.sh deleted file mode 100755 index fec710926..000000000 --- a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/download.sh +++ /dev/null @@ -1 +0,0 @@ -wget -r -k -l 7 -p -E -nc --reject="index.html*" --user-agent=Mozilla/5.0 https://downloads.datastax.com/cpp-driver/ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb deleted file mode 100644 index 1fb9f44dd..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb deleted file mode 100644 index 3ac90a83d..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb deleted file mode 100644 index 0e9e1301d..000000000 Binary files a/linux/ecosystem/testrail/7.4.1.8092/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/docker-compose.yml b/linux/ecosystem/testrail/7.4.1.8092/main/docker-compose.yml index 0a77d3fcc..f6fbe22d0 100644 --- a/linux/ecosystem/testrail/7.4.1.8092/main/docker-compose.yml +++ b/linux/ecosystem/testrail/7.4.1.8092/main/docker-compose.yml @@ -4,3 +4,6 @@ services: image: "epicmorg/testrail:7.4.1.8092" build: context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.4.1.8092/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.4.1.8092/main/docker-entrypoint.sh index 17af00304..dc1c41ac4 100755 --- a/linux/ecosystem/testrail/7.4.1.8092/main/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.4.1.8092/main/docker-entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail 7.4.1.8092" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/linux/ecosystem/testrail/7.5.1.7010/ad/Dockerfile b/linux/ecosystem/testrail/7.5.1.7010/ad/Dockerfile new file mode 100644 index 000000000..f7da517ca --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.1.7010 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.1.7010/ad/Makefile b/linux/ecosystem/testrail/7.5.1.7010/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7010/ad/README.md b/linux/ecosystem/testrail/7.5.1.7010/ad/README.md new file mode 100644 index 000000000..8f850f5e4 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.5.1.7010 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7010/ad/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7010/ad/docker-compose.yml new file mode 100644 index 000000000..6333015b5 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.5.1.7010" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.1.7010/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7010/ad/docker-entrypoint.sh new file mode 100755 index 000000000..448618e1c --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7010 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7010/ldap/Dockerfile b/linux/ecosystem/testrail/7.5.1.7010/ldap/Dockerfile new file mode 100644 index 000000000..a26b3d7a9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.1.7010 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.1.7010/ldap/Makefile b/linux/ecosystem/testrail/7.5.1.7010/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7010/ldap/README.md b/linux/ecosystem/testrail/7.5.1.7010/ldap/README.md new file mode 100644 index 000000000..13f88b690 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.5.1.7010 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7010/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7010/ldap/docker-compose.yml new file mode 100644 index 000000000..55f7d2b58 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.5.1.7010" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.1.7010/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7010/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..d1b2de3fe --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7010 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/.env b/linux/ecosystem/testrail/7.5.1.7010/main/.env new file mode 100644 index 000000000..a93ff18df --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.5.1.7010 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/Dockerfile b/linux/ecosystem/testrail/7.5.1.7010/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/Makefile b/linux/ecosystem/testrail/7.5.1.7010/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/README.md b/linux/ecosystem/testrail/7.5.1.7010/main/README.md new file mode 100644 index 000000000..4bb6c124a --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.5.1.7010 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/apache_testrail.conf b/linux/ecosystem/testrail/7.5.1.7010/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7010/main/docker-compose.yml new file mode 100644 index 000000000..2a2aaccdb --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.5.1.7010" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.1.7010/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7010/main/docker-entrypoint.sh new file mode 100755 index 000000000..b97ab9b98 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7010/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7010" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7012/ad/Dockerfile b/linux/ecosystem/testrail/7.5.1.7012/ad/Dockerfile new file mode 100644 index 000000000..b099ac164 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.1.7012 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.1.7012/ad/Makefile b/linux/ecosystem/testrail/7.5.1.7012/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7012/ad/README.md b/linux/ecosystem/testrail/7.5.1.7012/ad/README.md new file mode 100644 index 000000000..1b56b79b0 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.5.1.7012 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7012/ad/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7012/ad/docker-compose.yml new file mode 100644 index 000000000..f28b820c7 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.5.1.7012" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.1.7012/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7012/ad/docker-entrypoint.sh new file mode 100755 index 000000000..cd3b060ac --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7012 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7012/ldap/Dockerfile b/linux/ecosystem/testrail/7.5.1.7012/ldap/Dockerfile new file mode 100644 index 000000000..c1fe7d090 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.1.7012 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.1.7012/ldap/Makefile b/linux/ecosystem/testrail/7.5.1.7012/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7012/ldap/README.md b/linux/ecosystem/testrail/7.5.1.7012/ldap/README.md new file mode 100644 index 000000000..664d23240 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.5.1.7012 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7012/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7012/ldap/docker-compose.yml new file mode 100644 index 000000000..b70a2bf3e --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.5.1.7012" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.1.7012/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7012/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..f2ee54fb8 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7012 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/.env b/linux/ecosystem/testrail/7.5.1.7012/main/.env new file mode 100644 index 000000000..c1df01a2a --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.5.1.7012 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/Dockerfile b/linux/ecosystem/testrail/7.5.1.7012/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/Makefile b/linux/ecosystem/testrail/7.5.1.7012/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/README.md b/linux/ecosystem/testrail/7.5.1.7012/main/README.md new file mode 100644 index 000000000..00d04e6bb --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.5.1.7012 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/apache_testrail.conf b/linux/ecosystem/testrail/7.5.1.7012/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7012/main/docker-compose.yml new file mode 100644 index 000000000..5762a3b10 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.5.1.7012" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.1.7012/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7012/main/docker-entrypoint.sh new file mode 100755 index 000000000..49cb9e51f --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7012/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7012" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7013/ad/Dockerfile b/linux/ecosystem/testrail/7.5.1.7013/ad/Dockerfile new file mode 100644 index 000000000..4f1b8de77 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.1.7013 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.1.7013/ad/Makefile b/linux/ecosystem/testrail/7.5.1.7013/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7013/ad/README.md b/linux/ecosystem/testrail/7.5.1.7013/ad/README.md new file mode 100644 index 000000000..b5a1d8981 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.5.1.7013 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7013/ad/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7013/ad/docker-compose.yml new file mode 100644 index 000000000..cf2fe35c8 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.5.1.7013" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.1.7013/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7013/ad/docker-entrypoint.sh new file mode 100755 index 000000000..533f1ebdb --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7013 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7013/ldap/Dockerfile b/linux/ecosystem/testrail/7.5.1.7013/ldap/Dockerfile new file mode 100644 index 000000000..8a03a647b --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.1.7013 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.1.7013/ldap/Makefile b/linux/ecosystem/testrail/7.5.1.7013/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7013/ldap/README.md b/linux/ecosystem/testrail/7.5.1.7013/ldap/README.md new file mode 100644 index 000000000..e681c1ce2 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.5.1.7013 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7013/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7013/ldap/docker-compose.yml new file mode 100644 index 000000000..044b6ea44 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.5.1.7013" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.1.7013/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7013/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..f1e429f02 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7013 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/.env b/linux/ecosystem/testrail/7.5.1.7013/main/.env new file mode 100644 index 000000000..9e1f0cb6a --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.5.1.7013 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/Dockerfile b/linux/ecosystem/testrail/7.5.1.7013/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/Makefile b/linux/ecosystem/testrail/7.5.1.7013/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/README.md b/linux/ecosystem/testrail/7.5.1.7013/main/README.md new file mode 100644 index 000000000..db3d6b517 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.5.1.7013 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/apache_testrail.conf b/linux/ecosystem/testrail/7.5.1.7013/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/docker-compose.yml b/linux/ecosystem/testrail/7.5.1.7013/main/docker-compose.yml new file mode 100644 index 000000000..98dc93af7 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.5.1.7013" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.1.7013/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.1.7013/main/docker-entrypoint.sh new file mode 100755 index 000000000..0ca8c8e4e --- /dev/null +++ b/linux/ecosystem/testrail/7.5.1.7013/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.1.7013" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.2.1002/ad/Dockerfile b/linux/ecosystem/testrail/7.5.2.1002/ad/Dockerfile new file mode 100644 index 000000000..4a6d31ca4 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.2.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.2.1002/ad/Makefile b/linux/ecosystem/testrail/7.5.2.1002/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.2.1002/ad/README.md b/linux/ecosystem/testrail/7.5.2.1002/ad/README.md new file mode 100644 index 000000000..6d645d768 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:7.5.2.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.2.1002/ad/docker-compose.yml b/linux/ecosystem/testrail/7.5.2.1002/ad/docker-compose.yml new file mode 100644 index 000000000..81f0ae6b4 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-7.5.2.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.2.1002/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.2.1002/ad/docker-entrypoint.sh new file mode 100755 index 000000000..6435ac8bc --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.2.1002 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.2.1002/ldap/Dockerfile b/linux/ecosystem/testrail/7.5.2.1002/ldap/Dockerfile new file mode 100644 index 000000000..d6b6299ce --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:7.5.2.1002 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/7.5.2.1002/ldap/Makefile b/linux/ecosystem/testrail/7.5.2.1002/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.2.1002/ldap/README.md b/linux/ecosystem/testrail/7.5.2.1002/ldap/README.md new file mode 100644 index 000000000..06244bf08 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-7.5.2.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.2.1002/ldap/docker-compose.yml b/linux/ecosystem/testrail/7.5.2.1002/ldap/docker-compose.yml new file mode 100644 index 000000000..66297488b --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-7.5.2.1002" + build: + context: . diff --git a/linux/ecosystem/testrail/7.5.2.1002/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.2.1002/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..8936ed12b --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.2.1002 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/.env b/linux/ecosystem/testrail/7.5.2.1002/main/.env new file mode 100644 index 000000000..a66258b8b --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.5.2.1002 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/Dockerfile b/linux/ecosystem/testrail/7.5.2.1002/main/Dockerfile new file mode 100644 index 000000000..75d0e4504 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php7.4 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/Makefile b/linux/ecosystem/testrail/7.5.2.1002/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/README.md b/linux/ecosystem/testrail/7.5.2.1002/main/README.md new file mode 100644 index 000000000..e38392305 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php7.4` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:7.5.2.1002 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/apache_testrail.conf b/linux/ecosystem/testrail/7.5.2.1002/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/docker-compose.yml b/linux/ecosystem/testrail/7.5.2.1002/main/docker-compose.yml new file mode 100644 index 000000000..2524ec4be --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:7.5.2.1002" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.2.1002/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.2.1002/main/docker-entrypoint.sh new file mode 100755 index 000000000..db2f2d5ff --- /dev/null +++ b/linux/ecosystem/testrail/7.5.2.1002/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 7.5.2.1002" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/7.5.3.1000/ad/README.md b/linux/ecosystem/testrail/7.5.3.1000/ad/README.md index 1aae0e92d..895ebe094 100644 --- a/linux/ecosystem/testrail/7.5.3.1000/ad/README.md +++ b/linux/ecosystem/testrail/7.5.3.1000/ad/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail-ad-:7.5.3.1000 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.5.3.1000/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.3.1000/ad/docker-entrypoint.sh index 2a7954f51..3517671e1 100755 --- a/linux/ecosystem/testrail/7.5.3.1000/ad/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.5.3.1000/ad/docker-entrypoint.sh @@ -1,6 +1,8 @@ #!/bin/bash -echo "[testrail] Starting testrail service" +echo "[testrail] Welcome to Testrail 7.5.3.1000 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" ################################################################################## diff --git a/linux/ecosystem/testrail/7.5.3.1000/ldap/README.md b/linux/ecosystem/testrail/7.5.3.1000/ldap/README.md index 1aae0e92d..5161c16e3 100644 --- a/linux/ecosystem/testrail/7.5.3.1000/ldap/README.md +++ b/linux/ecosystem/testrail/7.5.3.1000/ldap/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:auth-ldap-7.5.3.1000 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.5.3.1000/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.3.1000/ldap/docker-entrypoint.sh index f25d4d764..a03a1378c 100755 --- a/linux/ecosystem/testrail/7.5.3.1000/ldap/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.5.3.1000/ldap/docker-entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail 7.5.3.1000 with LDAP plugin" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/.env b/linux/ecosystem/testrail/7.5.3.1000/main/.env new file mode 100644 index 000000000..cc764de27 --- /dev/null +++ b/linux/ecosystem/testrail/7.5.3.1000/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=7.5.3.1000 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/Dockerfile b/linux/ecosystem/testrail/7.5.3.1000/main/Dockerfile index 73a433ba0..75d0e4504 100644 --- a/linux/ecosystem/testrail/7.5.3.1000/main/Dockerfile +++ b/linux/ecosystem/testrail/7.5.3.1000/main/Dockerfile @@ -1,39 +1,13 @@ FROM epicmorg/apache2:php7.4 -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini - -############################################################################## -# Cassandra CPP Support Install -############################################################################## - -############################################################################## -# Cassandra PHP Drivers Install -############################################################################## - -COPY addons/cassandra-php-driver /tmp/cassandra-php-driver -RUN cd /tmp/cassandra-php-driver && \ - dpkg -i ./multiarch-support_2.28-10+deb10u1_amd64.deb && \ - dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ - dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb - -COPY addons/Drivers.Cassandra/Linux/7.4/cassandra.so ${PHP_MODULE_PATH} -RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ - php -m && \ - php -v - ############################################################################## # Testrail Install ############################################################################## -ENV TESTRAIL_VERSION=7.5.3.1000 -ENV DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + ENV TR_DEFAULT_TASK_EXECUTION=60 ENV TESTRAIL_RELEASE_DIR=/testrail-release @@ -55,8 +29,7 @@ ENV TR_CONFIGPATH="/var/www/testrail/config/" ENV OPENSSL_CONF=/etc/ssl/ -RUN \ - apt-get update && \ +RUN apt-get update && \ apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ apt-get clean && \ echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ @@ -64,20 +37,20 @@ RUN \ rm -rf /run.sh && \ rm -rf /tmp/* +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} -RUN \ - echo "[testrail] Preparing folders" && \ - mkdir -p ${TESTRAIL_RELEASE_DIR} && \ - mkdir -p ${TR_WWW_PATH} && \ - mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ - echo "[testrail] Downloading and installing" && \ - wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ - chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ - unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ - chown -R www-data:www-data ${TR_WWW_PATH} && \ - ls -las ${TR_WWW_PATH} && \ - chown -R www-data:www-data ${TR_OPT_PATH} && \ - ls -las ${TR_OPT_PATH} +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/README.md b/linux/ecosystem/testrail/7.5.3.1000/main/README.md index 1aae0e92d..2adee37b5 100644 --- a/linux/ecosystem/testrail/7.5.3.1000/main/README.md +++ b/linux/ecosystem/testrail/7.5.3.1000/main/README.md @@ -1,6 +1,6 @@ ## Testrail -* Based on `websites:php7.2` of our ecosystem. +* Based on `websites:php7.4` of our ecosystem. # Compose example @@ -8,7 +8,7 @@ version: '3.7' services: testrail: - image: epicmorg/testrail + image: epicmorg/testrail:7.5.3.1000 # depends_on: # - mysql # - memcached diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so deleted file mode 100755 index 48ec4a0af..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so deleted file mode 100755 index 9f6332a44..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/README.MD b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/README.MD deleted file mode 100644 index 8616d54de..000000000 --- a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/README.MD +++ /dev/null @@ -1,24 +0,0 @@ -# Cassandra PHP drivers for 7.3 and 7.4 - -`git clone https://git.assembla.com/gurock/Drivers.Cassandra.git` - -Drivers are built from sources of the awesome DataStax PHP driver available [here](https://github.com/datastax/php-driver) - -### Important: PHP driver requires C++ driver installed. It can be found [here](https://github.com/datastax/cpp-driver) - - - -# Copyright - -© DataStax, Inc. - -Licensed under the Apache License, Version 2.0 (the “License”); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll deleted file mode 100644 index d42d75acf..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll deleted file mode 100644 index 4d5e0694a..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll deleted file mode 100644 index 587141b9b..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll b/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll deleted file mode 100644 index 3b3237e27..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb deleted file mode 100644 index f0918d7d6..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb deleted file mode 100644 index edf602ecf..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb deleted file mode 100644 index 951f84d41..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/download.sh b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/download.sh deleted file mode 100755 index fec710926..000000000 --- a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/download.sh +++ /dev/null @@ -1 +0,0 @@ -wget -r -k -l 7 -p -E -nc --reject="index.html*" --user-agent=Mozilla/5.0 https://downloads.datastax.com/cpp-driver/ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb deleted file mode 100644 index 1fb9f44dd..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb deleted file mode 100644 index 3ac90a83d..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb deleted file mode 100644 index 0e9e1301d..000000000 Binary files a/linux/ecosystem/testrail/7.5.3.1000/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/docker-compose.yml b/linux/ecosystem/testrail/7.5.3.1000/main/docker-compose.yml index c4de29d76..337959202 100644 --- a/linux/ecosystem/testrail/7.5.3.1000/main/docker-compose.yml +++ b/linux/ecosystem/testrail/7.5.3.1000/main/docker-compose.yml @@ -4,3 +4,6 @@ services: image: "epicmorg/testrail:7.5.3.1000" build: context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/7.5.3.1000/main/docker-entrypoint.sh b/linux/ecosystem/testrail/7.5.3.1000/main/docker-entrypoint.sh index 17af00304..5d63991ec 100755 --- a/linux/ecosystem/testrail/7.5.3.1000/main/docker-entrypoint.sh +++ b/linux/ecosystem/testrail/7.5.3.1000/main/docker-entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/bash +echo "[testrail] Welcome to Testrail 7.5.3.1000" + echo "[testrail] Starting testrail service" ################################################################################# diff --git a/linux/ecosystem/testrail/8.0.0.1089/ad/Dockerfile b/linux/ecosystem/testrail/8.0.0.1089/ad/Dockerfile new file mode 100644 index 000000000..6f1ec0336 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:8.0.0.1089 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/8.0.0.1089/ad/Makefile b/linux/ecosystem/testrail/8.0.0.1089/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/8.0.0.1089/ad/README.md b/linux/ecosystem/testrail/8.0.0.1089/ad/README.md new file mode 100644 index 000000000..d5e8d1c77 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:8.0.0.1089 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/8.0.0.1089/ad/docker-compose.yml b/linux/ecosystem/testrail/8.0.0.1089/ad/docker-compose.yml new file mode 100644 index 000000000..799de971e --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-8.0.0.1089" + build: + context: . diff --git a/linux/ecosystem/testrail/8.0.0.1089/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/8.0.0.1089/ad/docker-entrypoint.sh new file mode 100755 index 000000000..ff2445a92 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 8.0.0.1089 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/8.0.0.1089/ldap/Dockerfile b/linux/ecosystem/testrail/8.0.0.1089/ldap/Dockerfile new file mode 100644 index 000000000..6046a0cfc --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:8.0.0.1089 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/8.0.0.1089/ldap/Makefile b/linux/ecosystem/testrail/8.0.0.1089/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/8.0.0.1089/ldap/README.md b/linux/ecosystem/testrail/8.0.0.1089/ldap/README.md new file mode 100644 index 000000000..a4a87b97f --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-8.0.0.1089 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/8.0.0.1089/ldap/docker-compose.yml b/linux/ecosystem/testrail/8.0.0.1089/ldap/docker-compose.yml new file mode 100644 index 000000000..5cfa8313c --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-8.0.0.1089" + build: + context: . diff --git a/linux/ecosystem/testrail/8.0.0.1089/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/8.0.0.1089/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..d2724006b --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 8.0.0.1089 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/.env b/linux/ecosystem/testrail/8.0.0.1089/main/.env new file mode 100644 index 000000000..ba7d9df69 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=8.0.0.1089 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/Dockerfile b/linux/ecosystem/testrail/8.0.0.1089/main/Dockerfile new file mode 100644 index 000000000..e67b1ce15 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php8.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/Makefile b/linux/ecosystem/testrail/8.0.0.1089/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/README.md b/linux/ecosystem/testrail/8.0.0.1089/main/README.md new file mode 100644 index 000000000..cd5580271 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:8.0.0.1089 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/apache_testrail.conf b/linux/ecosystem/testrail/8.0.0.1089/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/docker-compose.yml b/linux/ecosystem/testrail/8.0.0.1089/main/docker-compose.yml new file mode 100644 index 000000000..5bb2732e4 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:8.0.0.1089" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/8.0.0.1089/main/docker-entrypoint.sh b/linux/ecosystem/testrail/8.0.0.1089/main/docker-entrypoint.sh new file mode 100755 index 000000000..018e12233 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.0.1089/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 8.0.0.1089" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/8.0.1.1029/ad/Dockerfile b/linux/ecosystem/testrail/8.0.1.1029/ad/Dockerfile new file mode 100644 index 000000000..261fbbff0 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ad/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:8.0.1.1029 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ad +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/8.0.1.1029/ad/Makefile b/linux/ecosystem/testrail/8.0.1.1029/ad/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ad/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/8.0.1.1029/ad/README.md b/linux/ecosystem/testrail/8.0.1.1029/ad/README.md new file mode 100644 index 000000000..a57aef5c5 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ad/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail-ad-:8.0.1.1029 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/8.0.1.1029/ad/docker-compose.yml b/linux/ecosystem/testrail/8.0.1.1029/ad/docker-compose.yml new file mode 100644 index 000000000..ef1782b4d --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ad/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ad-8.0.1.1029" + build: + context: . diff --git a/linux/ecosystem/testrail/8.0.1.1029/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/8.0.1.1029/ad/docker-entrypoint.sh new file mode 100755 index 000000000..4404e044d --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ad/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 8.0.1.1029 with Active Directory plugin" + +echo "[testrail] Starting Testrail service" + +################################################################################## + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail Active Directory auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/8.0.1.1029/ldap/Dockerfile b/linux/ecosystem/testrail/8.0.1.1029/ldap/Dockerfile new file mode 100644 index 000000000..27fd35287 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ldap/Dockerfile @@ -0,0 +1,13 @@ +FROM epicmorg/testrail:8.0.1.1029 + +ENV TESTRAIL_PLUGIN_VERSION=1.4 +ENV TESTRAIL_PLUGIN_NAME=ldap +ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION} +ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip +ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE} +ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} + +RUN rm -rfv /usr/bin/docker-entrypoint.sh +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh + +RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL} diff --git a/linux/ecosystem/testrail/8.0.1.1029/ldap/Makefile b/linux/ecosystem/testrail/8.0.1.1029/ldap/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ldap/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/8.0.1.1029/ldap/README.md b/linux/ecosystem/testrail/8.0.1.1029/ldap/README.md new file mode 100644 index 000000000..a58b9a4ee --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ldap/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:auth-ldap-8.0.1.1029 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/8.0.1.1029/ldap/docker-compose.yml b/linux/ecosystem/testrail/8.0.1.1029/ldap/docker-compose.yml new file mode 100644 index 000000000..8d820a388 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ldap/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:auth-ldap-8.0.1.1029" + build: + context: . diff --git a/linux/ecosystem/testrail/8.0.1.1029/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/8.0.1.1029/ldap/docker-entrypoint.sh new file mode 100755 index 000000000..b3d10c88b --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/ldap/docker-entrypoint.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 8.0.1.1029 with LDAP plugin" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ + +echo "[testrail] Unzipping testrail LDAP auth plugin" +unzip -q -o -j ${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE} ${TESTRAIL_PLUGIN_FULLNAME}/auth.php -d ${TR_CUSTOM_AUTH_DIR} + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/.env b/linux/ecosystem/testrail/8.0.1.1029/main/.env new file mode 100644 index 000000000..ff031989c --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/.env @@ -0,0 +1,2 @@ +TESTRAIL_VERSION=8.0.1.1029 +DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/Dockerfile b/linux/ecosystem/testrail/8.0.1.1029/main/Dockerfile new file mode 100644 index 000000000..e67b1ce15 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/apache2:php8.1 + +############################################################################## +# Testrail Install +############################################################################## + +#configured by dockerfile / .ENV +ARG TESTRAIL_VERSION +ARG DOWNLOAD_URL + +ENV TR_DEFAULT_TASK_EXECUTION=60 + +ENV TESTRAIL_RELEASE_DIR=/testrail-release + +ENV TR_WWW_PATH=/var/www/testrail +ENV TR_CONFIGPATH=${TR_CONFIG_DIR} +ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config +ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom +ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth + +ENV TR_OPT_PATH=/opt/testrail +ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs +ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit +ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports +ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments + +ENV TR_OPTPATH="/opt/testrail/" +ENV TR_CONFIGPATH="/var/www/testrail/config/" + +ENV OPENSSL_CONF=/etc/ssl/ + +RUN apt-get update && \ + apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ + apt-get clean && \ + echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /run.sh && \ + rm -rf /tmp/* + +RUN echo "[testrail] Preparing folders" && \ + mkdir -p ${TESTRAIL_RELEASE_DIR} && \ + mkdir -p ${TR_WWW_PATH} && \ + mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ + echo "[testrail] Downloading and installing" && \ + wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ + chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ + unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ + chown -R www-data:www-data ${TR_WWW_PATH} && \ + ls -las ${TR_WWW_PATH} && \ + chown -R www-data:www-data ${TR_OPT_PATH} && \ + ls -las ${TR_OPT_PATH} + +RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)" + +COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +WORKDIR /var/www/testrail +EXPOSE 80 443 + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/Makefile b/linux/ecosystem/testrail/8.0.1.1029/main/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/README.md b/linux/ecosystem/testrail/8.0.1.1029/main/README.md new file mode 100644 index 000000000..e6c848865 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/README.md @@ -0,0 +1,36 @@ +## Testrail + +* Based on `websites:php8.1` of our ecosystem. + +# Compose example + +```yml +version: '3.7' +services: + testrail: + image: epicmorg/testrail:8.0.1.1029 +# depends_on: +# - mysql +# - memcached + restart: unless-stopped + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone +# - /etc/letsencrypt:/etc/letsencrypt + - www:/var/www + - apache2:/etc/apache2 + - php:/etc/php + restart: unless-stopped +# extra_hosts: +# - "example.com:192.168.0.11" + tmpfs: + - /tmp + - /var/lib/php/sessions +volumes: + www: + external: true + apache2: + external: true + php: + external: true +``` diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/apache_testrail.conf b/linux/ecosystem/testrail/8.0.1.1029/main/apache_testrail.conf new file mode 100644 index 000000000..750791db9 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/apache_testrail.conf @@ -0,0 +1,16 @@ + + ServerName localhost + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/testrail + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/docker-compose.yml b/linux/ecosystem/testrail/8.0.1.1029/main/docker-compose.yml new file mode 100644 index 000000000..55baf943b --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:8.0.1.1029" + build: + context: . + args: + RELEASE: ${TESTRAIL_VERSION} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/testrail/8.0.1.1029/main/docker-entrypoint.sh b/linux/ecosystem/testrail/8.0.1.1029/main/docker-entrypoint.sh new file mode 100755 index 000000000..50ac0fbf2 --- /dev/null +++ b/linux/ecosystem/testrail/8.0.1.1029/main/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +echo "[testrail] Welcome to Testrail 8.0.1.1029" + +echo "[testrail] Starting testrail service" + +################################################################################# + +function createOptDirectory { + if [ ! -d $1 ] + then + echo "[testrail] Creating " $1 + mkdir -p $1 + fi + + chown -R www-data:www-data $1 +} + +/bin/cp -rf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf + +echo "[testrail] Unzipping testrail service" +unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ +echo "[testrail] Testrail extracted" + +createOptDirectory ${TR_DEFAULT_LOG_DIR} +createOptDirectory ${TR_DEFAULT_AUDIT_DIR} +createOptDirectory ${TR_DEFAULT_REPORT_DIR} +createOptDirectory ${TR_DEFAULT_ATTACHMENT_DIR} + +chown -R www-data:www-data ${TR_CONFIG_DIR} +chown -R www-data:www-data ${TR_CONFIGPATH} + +################################################################################# + +echo "[testrail] Waiting for background task file" +while [ ! -f /var/www/testrail/task.php ] +do + sleep 2 +done + +echo "[testrail] Starting background task" +while /bin/true; do + php /var/www/testrail/task.php || true + sleep ${TR_DEFAULT_TASK_EXECUTION} +done & +echo "[testrail] Background task stoped" + +################################################################################# + +if [[ -z "${FIX_WWW_DATA}" ]]; then + echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway" + chown www-data:www-data /var/www -R +elif [ "${FIX_WWW_DATA}" == "false" ]; then + echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..." +elif [ "${FIX_WWW_DATA}" == "true" ]; then + echo "[apache2] Changing permissions for /var/www path. Dont worry, please wait." + chown www-data:www-data /var/www -R + echo "[apache2] Done" +else + echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..." +fi + +echo "[apache2] Starting up" + +source /etc/apache2/envvars +tail -F /var/log/apache2/* & +exec apache2 -D FOREGROUND diff --git a/linux/ecosystem/testrail/latest/main/Dockerfile b/linux/ecosystem/testrail/latest/main/Dockerfile deleted file mode 100644 index 4a69b4751..000000000 --- a/linux/ecosystem/testrail/latest/main/Dockerfile +++ /dev/null @@ -1,96 +0,0 @@ -FROM epicmorg/apache2:php7.4 - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini - -############################################################################## -# Cassandra CPP Support Install -############################################################################## - -############################################################################## -# Cassandra PHP Drivers Install -############################################################################## - -COPY addons/cassandra-php-driver /tmp/cassandra-php-driver -RUN cd /tmp/cassandra-php-driver && \ - dpkg -i ./multiarch-support_2.28-10+deb10u1_amd64.deb && \ - dpkg -i ./libuv1_1.35.0-1_amd64.deb && \ - dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb - -COPY addons/Drivers.Cassandra/Linux/7.4/cassandra.so ${PHP_MODULE_PATH} -RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \ - ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \ - php -m && \ - php -v - -############################################################################## -# Testrail Install -############################################################################## - -ENV TESTRAIL_VERSION=latest -ENV DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip -ENV TR_DEFAULT_TASK_EXECUTION=60 - -ENV TESTRAIL_RELEASE_DIR=/testrail-release - -ENV TR_WWW_PATH=/var/www/testrail -ENV TR_CONFIGPATH=${TR_CONFIG_DIR} -ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config -ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom -ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth - -ENV TR_OPT_PATH=/opt/testrail -ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs -ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit -ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports -ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments - -ENV TR_OPTPATH="/opt/testrail/" -ENV TR_CONFIGPATH="/var/www/testrail/config/" - -ENV OPENSSL_CONF=/etc/ssl/ - -RUN \ - apt-get update && \ - apt-get install -y --no-install-recommends zlib1g-dev libcurl4-gnutls-dev libldap2-dev zlib1g-dev libxml2-dev libfontconfig1 && \ - apt-get clean && \ - echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ - rm -rf /var/lib/apt/lists/* && \ - rm -rf /run.sh && \ - rm -rf /tmp/* - - -RUN \ - echo "[testrail] Preparing folders" && \ - mkdir -p ${TESTRAIL_RELEASE_DIR} && \ - mkdir -p ${TR_WWW_PATH} && \ - mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \ - echo "[testrail] Downloading and installing" && \ - wget --no-check-certificate -O ${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \ - chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \ - unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail.zip -d /var/www/ && \ - chown -R www-data:www-data ${TR_WWW_PATH} && \ - ls -las ${TR_WWW_PATH} && \ - chown -R www-data:www-data ${TR_OPT_PATH} && \ - ls -las ${TR_OPT_PATH} - -COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf - -#healthcheck. good practice -HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1 - -# Add image configuration and scripts -COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh -RUN chmod 755 /usr/bin/docker-entrypoint.sh - -#Final config -WORKDIR /var/www/testrail -EXPOSE 80 443 - -ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] -CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so deleted file mode 100755 index 48ec4a0af..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Linux/7.3/cassandra.so and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so deleted file mode 100755 index 9f6332a44..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Linux/7.4/cassandra.so and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/README.MD b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/README.MD deleted file mode 100644 index 8616d54de..000000000 --- a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/README.MD +++ /dev/null @@ -1,24 +0,0 @@ -# Cassandra PHP drivers for 7.3 and 7.4 - -`git clone https://git.assembla.com/gurock/Drivers.Cassandra.git` - -Drivers are built from sources of the awesome DataStax PHP driver available [here](https://github.com/datastax/php-driver) - -### Important: PHP driver requires C++ driver installed. It can be found [here](https://github.com/datastax/cpp-driver) - - - -# Copyright - -© DataStax, Inc. - -Licensed under the Apache License, Version 2.0 (the “License”); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. \ No newline at end of file diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll deleted file mode 100644 index d42d75acf..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.3_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll deleted file mode 100644 index 4d5e0694a..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.3_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll deleted file mode 100644 index 587141b9b..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.4_nts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll b/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll deleted file mode 100644 index 3b3237e27..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/Drivers.Cassandra/Windows/7.4_ts/php_cassandra.dll and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb deleted file mode 100644 index f0918d7d6..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb deleted file mode 100644 index edf602ecf..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb deleted file mode 100644 index 951f84d41..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/cassandra-cpp-driver_2.16.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/download.sh b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/download.sh deleted file mode 100755 index fec710926..000000000 --- a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/download.sh +++ /dev/null @@ -1 +0,0 @@ -wget -r -k -l 7 -p -E -nc --reject="index.html*" --user-agent=Mozilla/5.0 https://downloads.datastax.com/cpp-driver/ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb deleted file mode 100644 index 1fb9f44dd..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1-dbg_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb deleted file mode 100644 index 3ac90a83d..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1-dev_1.35.0-1_amd64.deb and /dev/null differ diff --git a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb b/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb deleted file mode 100644 index 0e9e1301d..000000000 Binary files a/linux/ecosystem/testrail/latest/main/addons/cassandra-php-driver/libuv1_1.35.0-1_amd64.deb and /dev/null differ