Viel neues

This commit is contained in:
Sven Steinert
2026-04-30 12:06:00 +02:00
parent 118809bfae
commit fce31ebcd7
1274 changed files with 181255 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
version: "3.8"
services:
app:
image: thecodingmachine/php:8.3-v4-apache
user: "${APP_UID:-0}:${APP_GID:-0}" # root zum Stabilisieren; später gern 33:33
ports:
- "${APP_PORT:-8009}:80"
environment:
PHP_EXTENSION_PDO_MYSQL: "1"
APP_BASE_URL: ${APP_BASE_URL:-http://localhost:8009}
AUTH_DISABLED: ${AUTH_DISABLED:-false}
# DB
DB_HOST: ${DB_HOST:-mariadb}
DB_PORT: ${DB_PORT:-3306}
DB_NAME: ${DB_NAME:-qa_tool}
DB_USER: ${DB_USER:-qa}
DB_PASS: ${DB_PASS:-change_me}
# STORAGE außerhalb des Code-Mounts
PDF_STORAGE_DIR: ${PDF_STORAGE_DIR:-/var/reports}
volumes:
# CODE (Bind-Mount) passe den Hostpfad an
- ${APP_HTDOCS_HOST:-/opt/qa-tool/htdocs}:/var/www/html
# STORAGE (Named Volume, **RW**!)
- pdf_storage:/var/reports
depends_on:
mariadb:
condition: service_healthy
fix-pdf-perms:
condition: service_completed_successfully
restart: unless-stopped
mariadb:
image: mariadb:11
environment:
MYSQL_DATABASE: ${DB_NAME:-qa_tool}
MYSQL_USER: ${DB_USER:-qa}
MYSQL_PASSWORD: ${DB_PASS:-change_me}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS:-change_me_root}
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "127.0.0.1", "-p${DB_PASS:-change_me}"]
interval: 10s
timeout: 5s
retries: 30
start_period: 20s
schema-loader:
image: mariadb:11
depends_on:
mariadb:
condition: service_healthy
environment:
DB_HOST: ${DB_HOST:-mariadb}
DB_PORT: ${DB_PORT:-3306}
DB_NAME: ${DB_NAME:-qa_tool}
DB_USER: ${DB_USER:-qa}
DB_PASS: ${DB_PASS:-change_me}
command:
- bash
- -lc
- |
until mariadb-admin -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" ping --silent; do sleep 2; done
mariadb -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" <<'SQL'
CREATE TABLE IF NOT EXISTS reports (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
module VARCHAR(255),
module_version VARCHAR(100),
pbx_version VARCHAR(100),
olm_nummer VARCHAR(100),
tester VARCHAR(255),
docbee_url TEXT,
summary VARCHAR(255),
pdf_path TEXT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS steps (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
report_id BIGINT NOT NULL,
step_index INT,
step_id VARCHAR(50),
title TEXT,
expected TEXT,
status ENUM('pass','fail','skip','na','') DEFAULT '',
comment TEXT,
evidence TEXT,
group_title VARCHAR(255),
group_index INT,
CONSTRAINT fk_steps_report FOREIGN KEY (report_id) REFERENCES reports(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
SQL
restart: "no"
# Rechte-Fix fürs Storage-Volume nie failen, maximal permissiv
fix-pdf-perms:
image: busybox:1.36
volumes:
- pdf_storage:/target
command: |
sh -lc '
set +e
mkdir -p /target
chmod -R 0777 /target 2>/dev/null || true
chown -R 0:0 /target 2>/dev/null || true
exit 0
'
restart: "no"
phpmyadmin:
image: phpmyadmin:5
ports:
- "${PHPMYADMIN_PORT:-8010}:80"
environment:
PMA_HOST: mariadb
PMA_USER: ${DB_USER:-qa}
PMA_PASSWORD: ${DB_PASS:-change_me}
depends_on:
mariadb:
condition: service_healthy
restart: unless-stopped
volumes:
db_data:
pdf_storage: