updates jan'22

This commit is contained in:
Anatolii Zimovskii 2022-01-25 19:01:36 +03:00
parent 4efd7b680c
commit 9c37f26f5a
Signed by: stam
GPG Key ID: AA3A575AB99E8469
10 changed files with 191 additions and 39 deletions

View File

@ -1,4 +1,9 @@
## Changelog
### 2022
* `january`
* fixed `apache2`
* added `php8` support
* extended `testrail` releases with `active directory` and `ldap` auth support.
### 2021
* `december`
* added `git-lfs`, `lazygit`, bumped versions of nginx, jira, conflunce and bitbucket.

View File

@ -1,40 +1,15 @@
FROM epicmorg/apache2:php7.4
FROM epicmorg/testrail:latest
ARG TESTRAIL_VERSION=latest
ARG DOWNLOAD_URL=https://secure.gurock.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion72.zip
ARG TESTRAIL_RELEASE_DIR=testrail-release
ARG TESTRAIL_RELEASE_DIR=/testrail-release
ENV TR_DEFAULT_TASK_EXECUTION=60
ENV TR_CONFIGPATH="/var/www/testrail/config/"
ENV TR_DEFAULT_LOG_DIR="/opt/testrail/logs/"
ENV TR_DEFAULT_AUDIT_DIR="/opt/testrail/audit/"
ENV TR_DEFAULT_REPORT_DIR="/opt/testrail/reports/"
ENV TR_DEFAULT_ATTACHMENT_DIR="/opt/testrail/attachments/"
ENV OPENSSL_CONF=/etc/ssl/
ARG TESTRAIL_PLUGIN_VERSION=1.4
ARG TESTRAIL_PLUGIN_NAME=ad
ARG TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
ARG TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
ARG TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
ARG TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
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 && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /run.sh
RUN \
echo "WGET" && \
mkdir -p /${TESTRAIL_RELEASE_DIR} && \
mkdir -p /var/www/testrail && \
mkdir -p /opt/testrail/attachments /opt/testrail/reports /opt/testrail/logs /opt/testrail/audit && \
wget --no-check-certificate -O /${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \
chown -R www-data:www-data /${TESTRAIL_RELEASE_DIR} && \
chown -R www-data:www-data /var/www/testrail && \
chown -R www-data:www-data /opt/testrail
COPY apache_testrail.conf /${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf
RUN rm -rfv /run.sh
COPY run.sh /run.sh
WORKDIR /var/www/testrail
EXPOSE 80
CMD ["/run.sh"]
RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}

View File

@ -0,0 +1,49 @@
#!/bin/bash
#set -e
function createOptDirectory {
if [ ! -d $1 ]
then
echo "Creating " $1
mkdir -p $1
fi
chown -R www-data:www-data $1
}
/bin/cp -rf /testrail-release/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf
echo "##############"
echo "Unzipping testrail"
unzip -o /testrail-release/testrail.zip -d /var/www/
unzip -o -j /testrail-release/testrail-auth-ad-1.4.zip testrail-auth-ad-1.4/auth.php -d ${TR_CUSTOM_AUTH_DIR} && \
ls -las ${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 /var/www/testrail/config
echo "##############"
echo "Waiting for background task file"
while [ ! -f /var/www/testrail/task.php ]
do
sleep 2
done
echo "Starting background task"
while /bin/true; do
php /var/www/testrail/task.php || true
sleep $TR_DEFAULT_TASK_EXECUTION
done &
echo "##############"
chown www-data:www-data /var/www -R
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND

View File

@ -32,6 +32,8 @@ RUN \
mkdir -p /opt/testrail/attachments /opt/testrail/reports /opt/testrail/logs /opt/testrail/audit && \
wget --no-check-certificate -O /${TESTRAIL_RELEASE_DIR}/testrail.zip ${DOWNLOAD_URL} && \
chown -R www-data:www-data /${TESTRAIL_RELEASE_DIR} && \
unzip -o /testrail-release/testrail.zip -d /var/www/ && \
ls -las /var/www/testrail && \
chown -R www-data:www-data /var/www/testrail && \
chown -R www-data:www-data /opt/testrail
@ -42,4 +44,4 @@ COPY run.sh /run.sh
WORKDIR /var/www/testrail
EXPOSE 80
CMD ["/run.sh"]
CMD ["/run.sh"]

View File

@ -15,17 +15,15 @@ function createOptDirectory {
echo "##############"
echo "Unzipping testrail"
unzip /testrail-release/testrail.zip -d /var/www/
unzip -o /testrail-release/testrail.zip -d /var/www/
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 /var/www/testrail/config
echo "##############"
echo "Waiting for background task file"
while [ ! -f /var/www/testrail/task.php ]

View File

@ -0,0 +1,15 @@
FROM epicmorg/testrail:latest
ARG TESTRAIL_RELEASE_DIR=/testrail-release
ARG TESTRAIL_PLUGIN_VERSION=1.4
ARG TESTRAIL_PLUGIN_NAME=ldap
ARG TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
ARG TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
ARG TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
ARG TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
RUN rm -rfv /run.sh
COPY run.sh /run.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
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"
build:
context: .

View File

@ -0,0 +1,47 @@
#!/bin/bash
#set -e
function createOptDirectory {
if [ ! -d $1 ]
then
echo "Creating " $1
mkdir -p $1
fi
chown -R www-data:www-data $1
}
/bin/cp -rf /testrail-release/apache-conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf
echo "##############"
echo "Unzipping testrail"
unzip -o /testrail-release/testrail.zip -d /var/www/
unzip -o -j /testrail-release/testrail-auth-ldap-1.4.zip testrail-auth-ldap-1.4/auth.php -d ${TR_CUSTOM_AUTH_DIR} && \
ls -las ${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 /var/www/testrail/config
echo "##############"
echo "Waiting for background task file"
while [ ! -f /var/www/testrail/task.php ]
do
sleep 2
done
echo "Starting background task"
while /bin/true; do
php /var/www/testrail/task.php || true
sleep $TR_DEFAULT_TASK_EXECUTION
done &
echo "##############"
chown www-data:www-data /var/www -R
source /etc/apache2/envvars
tail -F /var/log/apache2/* &
exec apache2 -D FOREGROUND