make - autocommit

This commit is contained in:
Zimovskii Anatolii 2023-04-18 19:44:47 +03:00 committed by STAM
parent cf2771688d
commit 0dfcea62c8
Signed by: stam
GPG Key ID: 4F57E51F9C45F8CD
32 changed files with 620 additions and 0 deletions

View File

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

View File

@ -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

View File

@ -0,0 +1,36 @@
## Testrail
* Based on `websites:php7.2` of our ecosystem.
# Compose example
```yml
version: '3.7'
services:
testrail:
image: epicmorg/testrail
# 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,6 @@
version: '3.9'
services:
app:
image: "epicmorg/testrail:auth-ad-7.5.3.1000"
build:
context: .

View File

@ -0,0 +1,66 @@
#!/bin/bash
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

View File

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

View File

@ -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

View File

@ -0,0 +1,36 @@
## Testrail
* Based on `websites:php7.2` of our ecosystem.
# Compose example
```yml
version: '3.7'
services:
testrail:
image: epicmorg/testrail
# 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,6 @@
version: '3.9'
services:
app:
image: "epicmorg/testrail:auth-ldap-7.5.3.1000"
build:
context: .

View File

@ -0,0 +1,66 @@
#!/bin/bash
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

View File

@ -0,0 +1,96 @@
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
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"]

View File

@ -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

View File

@ -0,0 +1,36 @@
## Testrail
* Based on `websites:php7.2` of our ecosystem.
# Compose example
```yml
version: '3.7'
services:
testrail:
image: epicmorg/testrail
# 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,24 @@
# 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.

View File

@ -0,0 +1 @@
wget -r -k -l 7 -p -E -nc --reject="index.html*" --user-agent=Mozilla/5.0 https://downloads.datastax.com/cpp-driver/

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,6 @@
version: '3.9'
services:
app:
image: "epicmorg/testrail:7.5.3.1000"
build:
context: .

View File

@ -0,0 +1,65 @@
#!/bin/bash
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

View File

@ -0,0 +1,77 @@
## Testrail
# Compose example
```yml
testrail-latest-core:
container_name: testrail-latest-core
hostname: testrail-latest-core
image: epicmorg/testrail:latest
restart: always
ports:
- "80:80"
volumes:
- /mnt/lvm/apps/testrail-latest/core/custom/auth/auth.php:/var/www/testrail/custom/auth/auth.php:ro
- /mnt/lvm/apps/testrail-latest/core/attachments:/opt/testrail/attachments
- /mnt/lvm/apps/testrail-latest/core/audit:/opt/testrail/audit
- /mnt/lvm/apps/testrail-latest/core/logs:/opt/testrail/logs
- /mnt/lvm/apps/testrail-latest/core/reports:/opt/testrail/reports
- /mnt/lvm/apps/testrail-latest/core/www/config:/var/www/testrail/config
depends_on:
- testrail-latest-mysql
- testrail-latest-rabbitmq
- testrail-latest-cassandra
environment:
- TR_DEFAULT_TASK_EXECUTION=5
testrail-latest-mysql:
container_name: testrail-latest-mysql
hostname: testrail-latest-mysql
image: mysql:8
ports:
- "3306:3306"
volumes:
- /mnt/lvm/apps/testrail-latest/mysql8.0/etc/mysql/my.cnf:/etc/mysql/my.cnf
- /mnt/lvm/apps/testrail-latest/mysql8.0/var/lib/mysql:/var/lib/mysql
- /mnt/lvm/apps/testrail-latest/mysql8.0/var/lib/mysql-files:/var/lib/mysql-files
- /mnt/lvm/apps/testrail-latest/mysql8.0/var/log/mysql:/var/log/mysql
restart: always
environment:
INIT_TOKUDB: 1
MYSQL_ROOT_PASSWORD: password
testrail-latest-cassandra:
container_name: testrail-latest-cassandra
hostname: cassandra
image: epicmorg/cassandra:3.11
ulimits:
memlock: -1
nproc: 1048575
nofile: 100000
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /mnt/lvm/apps/testrail-latest/cassandra/bitnami:/bitnami
environment:
- CASSANDRA_SEEDS=user
- CASSANDRA_PASSWORD_SEEDER=yes
- CASSANDRA_PASSWORD=password
restart: always
testrail-latest-rabbitmq:
image: rabbitmq:3-management
container_name: testrail-latest-rabbitmq
hostname: testrail-latest-rabbitmq
ports:
- 15671:15671
- 15672:15672
restart: always
environment:
- RABBITMQ_DEFAULT_USER=testrail
- RABBITMQ_DEFAULT_PASS=testrail
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /mnt/lvm/apps/testrail-latest/rabbitmq:/var/lib/rabbitmq
```