testrail updates

This commit is contained in:
STAM 2025-05-12 12:35:27 +03:00
parent c035327d4e
commit 72c8d7e555
No known key found for this signature in database
GPG Key ID: 711526C6938897F1
55 changed files with 1812 additions and 2 deletions

View File

@ -212,8 +212,11 @@ jobs:
'8.0.1.1029',
'8.0.4.7036',
'8.0.6.1019',
'8.1.0.6165',
'8.1.0.6186',
'9.0.0.1057'
'9.0.0.1057',
'9.0.0.1091',
'9.1.0.1025',
]
steps:

View File

@ -2,5 +2,8 @@
8.0.1.1029
8.0.4.7036
8.0.6.1019
8.1.0.6165
8.1.0.6186
9.0.0.1057
9.0.0.1057
9.0.0.1091
9.1.0.1025

View File

@ -0,0 +1 @@
./1.28

View File

@ -0,0 +1,13 @@
FROM quay.io/epicmorg/testrail:8.1.0.6165
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}

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail-ad-:8.1.0.6165
# 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
```

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:auth-ad-8.1.0.6165"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 8.1.0.6165 with Active Directory plugin"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,13 @@
FROM quay.io/epicmorg/testrail:8.1.0.6165
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}

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail:auth-ldap-8.1.0.6165
# 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
```

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:auth-ldap-8.1.0.6165"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 8.1.0.6165 with LDAP plugin"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,2 @@
TESTRAIL_VERSION=8.1.0.6165
DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip

View File

@ -0,0 +1,65 @@
FROM quay.io/epicmorg/apache2:php8.1
##############################################################################
# Testrail Install
##############################################################################
ENV TESTRAIL_VERSION=8.1.0.6165
ARG DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
ADD ${DOWNLOAD_URL} ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip
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" && \
chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \
unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.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
RUN updatedb
#Final config
WORKDIR /var/www/testrail
EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail:8.1.0.6165
# 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
```

View File

@ -0,0 +1,16 @@
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/testrail
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:8.1.0.6165"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 8.1.0.6165"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion81.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,13 @@
FROM quay.io/epicmorg/testrail:9.0.0.1091
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}

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail-ad-:9.0.0.1091
# 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
```

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:auth-ad-9.0.0.1091"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 9.0.0.1091 with Active Directory plugin"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,13 @@
FROM quay.io/epicmorg/testrail:9.0.0.1091
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}

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail:auth-ldap-9.0.0.1091
# 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
```

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:auth-ldap-9.0.0.1091"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 9.0.0.1091 with LDAP plugin"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,2 @@
TESTRAIL_VERSION=9.0.0.1091
DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip

View File

@ -0,0 +1,65 @@
FROM quay.io/epicmorg/apache2:php8.1
##############################################################################
# Testrail Install
##############################################################################
ENV TESTRAIL_VERSION=9.0.0.1091
ARG DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
ADD ${DOWNLOAD_URL} ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip
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" && \
chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \
unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.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
RUN updatedb
#Final config
WORKDIR /var/www/testrail
EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail:9.0.0.1091
# 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
```

View File

@ -0,0 +1,16 @@
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/testrail
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:9.0.0.1091"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 9.0.0.1091"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion81.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,13 @@
FROM quay.io/epicmorg/testrail:9.1.0.1025
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}

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail-ad-:9.1.0.1025
# 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
```

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:auth-ad-9.1.0.1025"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 9.1.0.1025 with Active Directory plugin"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,13 @@
FROM quay.io/epicmorg/testrail:9.1.0.1025
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}

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail:auth-ldap-9.1.0.1025
# 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
```

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:auth-ldap-9.1.0.1025"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 9.1.0.1025 with LDAP plugin"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -0,0 +1,2 @@
TESTRAIL_VERSION=9.1.0.1025
DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip

View File

@ -0,0 +1,65 @@
FROM quay.io/epicmorg/apache2:php8.1
##############################################################################
# Testrail Install
##############################################################################
ENV TESTRAIL_VERSION=9.1.0.1025
ARG DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
ADD ${DOWNLOAD_URL} ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip
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" && \
chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \
unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.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
RUN updatedb
#Final config
WORKDIR /var/www/testrail
EXPOSE 80 443
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
CMD ["docker-entrypoint.sh"]

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,35 @@
## Testrail
* Based on `websites:php8.1` of our ecosystem.
# Compose example
```yml
services:
testrail:
image: epicmorg/testrail:9.1.0.1025
# 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
```

View File

@ -0,0 +1,16 @@
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/testrail
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

View File

@ -0,0 +1,5 @@
services:
app:
image: "quay.io/epicmorg/testrail:9.1.0.1025"
build:
context: .

View File

@ -0,0 +1,80 @@
#!/bin/bash
echo "[testrail] Welcome to Testrail 9.1.0.1025"
echo "[testrail] Starting testrail service"
#################################################################################
# Function for creating directories with rights for www-data
function createOptDirectory {
if [ ! -d "$1" ]; then
echo "[testrail] Creating $1"
mkdir -p "$1"
fi
chown -R www-data:www-data "$1"
}
#################################################################################
# Copy Apache Configuration
/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
#################################################################################
# Unpacking TestRail
if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" ]; then
echo "[testrail] Unzipping testrail service"
unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" -d /var/www/
echo "[testrail] Testrail extracted"
else
echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion81.zip not found in ${TESTRAIL_RELEASE_DIR}"
exit 1
fi
#################################################################################
# Creating the necessary directories
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}"
#################################################################################
# Waiting for task.php file to appear
TASK_FILE="/var/www/testrail/task.php"
echo "[testrail] Waiting for background task file"
while [ ! -f "$TASK_FILE" ]; do
sleep 2
done
echo "[testrail] Starting background task"
# Removing the memory limit for executing a PHP task
while /bin/true; do
php -d memory_limit=-1 "$TASK_FILE" || true
sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
done &
echo "[testrail] Background task started"
#################################################################################
# Processing the FIX_WWW_DATA environment variable
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. Don't 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
#################################################################################
# Starting Apache
echo "[apache2] Starting up"
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND