Installation Docker
latest tag
Le tag latest dans Docker Hub fait référence à la version la plus avancée, pas à la derniÚre image publiée. Les tags de développement tels que nightly, IT (Integration Testing) et RC (Release Candidate) ne sont pas pris en compte.
Par exemple, considĂ©rons le scĂ©nario oĂč les versions d'images sont publiĂ©es sur Docker Hub dans l'ordre suivant : 8.0.0, 7.5.2, 8.1.0.RC1 et nightly.
Dans ce cas, le tag latest pointera vers la version 8.0.0.
Conformément aux bonnes pratiques Docker, il est recommandé d'éviter l'utilisation du tag latest et de spécifier plutÎt des numéros de version explicites.
Démarrage rapide
Pour commencer rapidement avec SquashTM :
Installez Docker si ce n'est pas déjà fait sur votre ordinateur.
Créez un fichier
docker-compose.ymlavec ce contenu :services: squashtm-pg: container_name: squashtm-pg environment: POSTGRES_DB: squashtm POSTGRES_USER: squashtm POSTGRES_PASSWORD: MustB3Ch4ng3d image: postgres:17 ports: - 5432:5432 squashtm: container_name: squashtm image: squashtest/squash:14.0.0 depends_on: - squashtm-pg environment: SPRING_PROFILES_ACTIVE: postgresql SPRING_DATASOURCE_URL: jdbc:postgresql://squashtm-pg:5432/squashtm SPRING_DATASOURCE_USERNAME: squashtm SPRING_DATASOURCE_PASSWORD: MustB3Ch4ng3d ports: - 8090:8080 volumes: - squashtm-logs:/opt/squash-tm/logs volumes: squashtm-logs:Exécutez la commande
docker compose up.Connectez-vous sur http://localhost:8090/squash en utilisant le login "admin" et le mot de passe "admin".
Configuration
SquashTM est une application Spring Boot qui peut ĂȘtre configurĂ©e Ă l'aide de variables d'environnement comme expliquĂ© ici.
Variables d'environnement
AccÚs à la base de données
La connexion à la base de données est configurée en fonction de la premiÚre variable d'environnement correspondante dans l'ordre de priorité suivant :
- Variables d'environnement Shell définies dans le conteneur :
SPRING_PROFILES_ACTIVEouSPRING_DATASOURCE_* - Variables d'environnement Shell définies dans le conteneur :
SQTM_DB_* - Fichier de configuration : fichier
squash.tm.cfg.properties(situé dans le répertoireconfig) - ParamÚtres par défaut internes
Variables Spring
| Variable d'environnement | ParamĂštre Spring correspondant |
|---|---|
| SPRING_PROFILES_ACTIVE | spring.profiles.active |
| SPRING_DATASOURCE_URL | spring.datasource.url |
| SPRING_DATASOURCE_USERNAME | spring.datasource.username |
| SPRING_DATASOURCE_PASSWORD | spring.datasource.password |
Ces paramÚtres sont décrits ici.
Variables SQTM_DB_*
| Variable | Description | Défaut pour MariaDB | Défaut pour PostgreSQL |
|---|---|---|---|
| SQTM_DB_TYPE | Soit mariadb ou postgresql | (special) | (special) |
| SQTM_DB_HOST | Nom de l'hÎte du serveur de base de données | mariadb | postgres |
| SQTM_DB_PORT | Port du serveur de base de données | 3306 | 5432 |
| SQTM_DB_NAME | Nom de la base de données | squashtm | squashtm |
| SQTM_DB_SCHEMA | Nom du schéma | $DB_NAME | public |
| SQTM_DB_USERNAME | Username pour SquashTM | root | postgres |
| SQTM_DB_PASSWORD | Mot de passe pour SquashTM | (none) | (none) |
Notes :
- (none) : la variable est obligatoire et n'a pas de valeur par défaut ;
- (special) : voir ci-dessous ;
Variable SQTM_DB_TYPE
SQTM_DB_TYPE a un impact sur les valeurs par défaut de plusieurs autres variables. La bonne pratique est de la définir explicitement.
Veillez à saisir correctement la valeur souhaitée (par exemple postgresql et non postgres), sinon l'application ne démarrera pas.
Autres variables utiles
Fuseau horaire
Vous pouvez ajuster les paramĂštres du fuseau horaire de votre conteneur Ă l'aide de la variable d'environnement TZ.
Par exemple, pour définir votre fuseau horaire à Europe/Paris, ajoutez le paramÚtre suivant à la commande docker run :
--env TZ=Europe/Paris
Configuration de l'application avec JAVA_TOOL_OPTIONS
La variable d'environnement JAVA_TOOL_OPTIONS est utilisée pour passer des arguments à une application Java, sans modifier le script de démarrage ou la ligne de commande de l'application.
Il y a cependant quelques rĂ©serves. Elle ne peut pas encore ĂȘtre utilisĂ©e pour configurer le heap size (cela fonctionne bien pour les autres flags de la JVM).
Une autre limitation est qu'elle ne peut pas ĂȘtre complĂ©tĂ©e mais seulement redĂ©clarĂ©e. Le dockerfile dĂ©finit sa valeur par dĂ©faut Ă -Djava.awt.headless=true, qui est nĂ©cessaire parce que SquashTM fonctionne dans un environnement Linux non GUI. Si vous ne devez pas en tenir compte, n'oubliez pas de rĂ©introduire manuellement ce paramĂštre (sinon vous risquez de rencontrer des problĂšmes lors de la gĂ©nĂ©ration et de l'export de rapports).
Ces inconvénients proviennent d'archaïsmes dans le script de démarrage et seront corrigés dans les prochaines versions.
Exemple pour lancer SquashTM avec le fuseau horaire des Fidji et activer tous les endpoints (points de terminaison) Actuator (à utiliser avec précaution, car cela exposera les paramÚtres sensibles !) :
export SQTM_OPTS="-Djava.awt.headless=true \
-Duser.timezone=Pacific/Fiji \
-Dmanagement.endpoints.access.default=unrestricted \
-Dmanagement.endpoints.web.exposure.include=*"
docker run --rm -d -p 8090:8080 -e JAVA_TOOL_OPTIONS="$SQTM_OPTS" squashtest/squash:14.0.0
Configuration de l'application avec SPRING_APPLICATION_JSON
Comme expliqué ici, SPRING_APPLICATION_JSON est une variable d'environnement dans Spring Boot qui permet de définir les propriétés de configuration de l'application sous forme de chaßne JSON.
Exemple pour activer la prise en charge du déchargement SSL :
cat << EOF > tmconf.json
{
"server": {
"use-forward-headers": true
}
}
EOF
docker run --rm -d -p 8090:8080 -e SPRING_APPLICATION_JSON="$(jq -c . < tmconf.json)" squashtest/squash:14.0.0
Déploiement de SquashTM
Les sections suivantes montrent comment déployer SquashTM en utilisant un conteneur externe PostgreSQL DB ou MariaDB. Des exemples de fichiers YAML montrent aussi comment déployer cette solution en utilisant Docker Compose ou Kubernetes.
Avec PostgreSQL
La base de données est créée par le conteneur de la base de données et est automatiquement peuplée par le conteneur de l'application au premier lancement ou mise à jour si nécessaire lorsqu'une version plus récente de SquashTM est déployée.
Toutes les donnĂ©es de la base de donnĂ©es seront sauvegardĂ©es dans le volume local nommĂ© squashtm-db-pg. De ce fait, le conteneur de base de donnĂ©es (appelĂ© squashtm-pg) peut ĂȘtre arrĂȘtĂ© et redĂ©marrĂ© sans risque de perte de donnĂ©es.
docker network create squashtm-postgresql
docker run -it -d --name='squashtm-pg' \
--network squashtm-postgresql \
-e POSTGRES_USER=squashtm \
-e POSTGRES_PASSWORD=MustB3Ch4ng3d \
-e POSTGRES_DB=squashtm \
-v squashtm-db-pg:/var/lib/postgresql/data \
postgres:17
sleep 10
docker run -it -d --name=squashtm \
--network squashtm-postgresql \
-e SPRING_PROFILES_ACTIVE=postgresql \
-e SPRING_DATASOURCE_USERNAME=squashtm \
-e SPRING_DATASOURCE_PASSWORD=MustB3Ch4ng3d \
-e SPRING_DATASOURCE_URL=jdbc:postgresql://squashtm-pg:5432/squashtm \
-v squashtm-logs:/opt/squash-tm/logs \
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#-v your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg \
-p 8090:8080 \
squashtest/squash:14.0.0
docker network create squashtm-postgresql
docker run -it -d --name='squashtm-pg' \
--network squashtm-postgresql \
-e POSTGRES_USER=squashtm \
-e POSTGRES_PASSWORD=MustB3Ch4ng3d \
-e POSTGRES_DB=squashtm \
-v squashtm-db-pg:/var/lib/postgresql/data \
postgres:17
sleep 10
docker run -it -d --name=squashtm \
--network squashtm-postgresql \
-e SQTM_DB_TYPE=postgresql \
-e SQTM_DB_USERNAME=squashtm \
-e SQTM_DB_PASSWORD=MustB3Ch4ng3d \
-e SQTM_DB_NAME=squashtm \
-e SQTM_DB_HOST=squashtm-pg \
-v squashtm-logs:/opt/squash-tm/logs \
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#-v your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg \
-p 8090:8080 \
squashtest/squash:14.0.0
Attendez quelques minutes le temps que SquashTM initialise la base de données. Ensuite, connectez-vous à http://localhost:8090/squash (admin / admin).
Si vous disposez de vos propres plugins, ajoutez -v squashtm-plugins:/opt/squash-tm/plugins (voir ici).
Avec MariaDB
La base de données est créée par le conteneur de la base de données et est automatiquement peuplée par le conteneur de l'application au premier lancement ou mise à jour si nécessaire lorsqu'une version plus récente de SquashTM est déployée.
Toutes les donnĂ©es de la base de donnĂ©es seront sauvegardĂ©es dans le volume local nommĂ© squashtm-db-mdb. De ce fait, le conteneur de base de donnĂ©es (appelĂ© squashtm-mdb) peut ĂȘtre arrĂȘtĂ© et redĂ©marrĂ© sans risque de perte de donnĂ©es.
docker network create squashtm-mariadb
docker run -it -d --name='squashtm-mdb' \
--network squashtm-mariadb \
-e MARIADB_ROOT_PASSWORD=MustB3Ch4ng3d \
-e MARIADB_USER=squashtm \
-e MARIADB_PASSWORD=MustB3Ch4ng3d \
-e MARIADB_DATABASE=squashtm \
-v squashtm-db-mdb:/var/lib/mysql \
mariadb:10.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
sleep 10
docker run -it -d --name=squashtm \
--network squashtm-mariadb \
-e SPRING_PROFILES_ACTIVE=mariadb \
-e SPRING_DATASOURCE_USERNAME=squashtm \
-e SPRING_DATASOURCE_PASSWORD=MustB3Ch4ng3d \
-e SPRING_DATASOURCE_URL=jdbc:mariadb://squashtm-mdb:3306/squashtm \
-v squashtm-logs:/opt/squash-tm/logs \
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#-v your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg \
-p 8090:8080 \
squashtest/squash:14.0.0
docker network create squashtm-mariadb
docker run -it -d --name='squashtm-mdb' \
--network squashtm-mariadb \
-e MARIADB_ROOT_PASSWORD=MustB3Ch4ng3d \
-e MARIADB_USER=squashtm \
-e MARIADB_PASSWORD=MustB3Ch4ng3d \
-e MARIADB_DATABASE=squashtm \
-v squashtm-db-mdb:/var/lib/mysql \
mariadb:10.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
sleep 10
docker run -it -d --name=squashtm \
--network squashtm-mariadb \
-e SQTM_DB_TYPE=mariadb \
-e SQTM_DB_USERNAME=squashtm \
-e SQTM_DB_PASSWORD=MustB3Ch4ng3d \
-e SQTM_DB_NAME=squashtm \
-e SQTM_DB_HOST=squashtm-mdb \
-v squashtm-logs:/opt/squash-tm/logs \
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#-v your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg \
-p 8090:8080 \
squashtest/squash:14.0.0
Attendez quelques minutes le temps que SquashTM initialise la base de données. Ensuite, connectez-vous à http://localhost:8090/squash (admin / admin).
Si vous disposez de vos propres plugins, ajoutez -v squashtm-plugins:/opt/squash-tm/plugins (voir ici).
Docker Compose
Fichier docker-compose.yml
L'exemple suivant de docker-compose.yml lie SquashTM Ă une base de donnĂ©es MariaDB. Les variables d'environnement doivent ĂȘtre dĂ©finies dans un fichier .env (enregistrĂ© dans le mĂȘme dĂ©pĂŽt que le fichier docker-compose.yml).
services:
squashtm-md:
image: mariadb:10.7
environment:
MARIADB_ROOT_PASSWORD: ${DB_PASSWORD}
MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASSWORD}
MARIADB_DATABASE: ${DB_DATABASE}
ports:
- 3306:3306
volumes:
- "./init.sql:/docker-entrypoint-initdb.d/init.sql"
# Décommentez ci-dessous pour avoir des données persistantes
# - "/chemin/local/de/vos/data:/var/lib/mysql"
squashtm:
image: squashtest/squash:14.0.0
depends_on:
- squashtm-md
environment:
SPRING_PROFILES_ACTIVE: mariadb
SPRING_DATASOURCE_URL: jdbc:mariadb://squashtm-md:3306/${DB_DATABASE}
SPRING_DATASOURCE_USERNAME: ${DB_USER}
SPRING_DATASOURCE_PASSWORD: ${DB_PASSWORD}
ports:
- 8090:8080
volumes:
- squashtm-logs:/opt/squash-tm/logs
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#- your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg
volumes:
squashtm-logs:
services:
squashtm-md:
image: mariadb:10.7
environment:
MARIADB_ROOT_PASSWORD: ${DB_PASSWORD}
MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASSWORD}
MARIADB_DATABASE: ${DB_DATABASE}
ports:
- 3306:3306
volumes:
- "./init.sql:/docker-entrypoint-initdb.d/init.sql"
# Décommentez ci-dessous pour avoir des données persistantes
# - "/chemin/local/de/vos/data:/var/lib/mysql"
squashtm:
image: squashtest/squash:14.0.0
depends_on:
- squashtm-md
environment:
SQTM_DB_TYPE: mariadb
SQTM_DB_USERNAME: ${DB_USER}
SQTM_DB_PASSWORD: ${DB_PASSWORD}
SQTM_DB_NAME: ${DB_DATABASE}
SQTM_DB_HOST: squashtm-md
SQTM_DB_PORT: "3306"
ports:
- 8090:8080
volumes:
- squashtm-logs:/opt/squash-tm/logs
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#- your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg
volumes:
squashtm-logs:
Fichier .env
DB_USER=squashtm
DB_PASSWORD=MustB3Ch4ng3d
DB_DATABASE=squashtm
Fichier init.sql
Le fichier init.sql doit ĂȘtre placĂ© Ă la racine du projet lors de l'utilisation d'une base de donnĂ©es MariaDB. Ce script permet d'attribuer les privilĂšges et rĂŽles nĂ©cessaires Ă l'utilisateur squashtm :
GRANT USAGE ON squashtm.* TO 'squashtm'@'%' WITH GRANT OPTION;
GRANT ALL ON squashtm.* TO 'squashtm'@'%';
CREATE ROLE alter_squash_table_seq;
GRANT alter_squash_table_seq TO 'squashtm'@'%';
SET DEFAULT ROLE alter_squash_table_seq FOR 'squashtm'@'%';
FLUSH PRIVILEGES;
Si vous disposez de vos propres plugins, ajoutez dans les volumes : squashtm-plugins:/opt/squash-tm/plugins (voir ici).
Exécuter Docker Compose
Copiez le
docker-compose.ymlqui correspond Ă votre besoin.
Vous trouverez plusieurs répertoires docker-compose sur notre GitLab :N'oubliez pas de créer un fichier
.env(ou de définir la valeur des variables d'environnement directement dans le fichierdocker-compose.yml) ;Dans le répertoire de
docker-compose.yml, exĂ©cutezdocker compose upoudocker compose up -dpour le mode daemon ;Connectez-vous Ă
http://localhost:8090/squashouhttp://{host_ip}:8090/squash.
Pour plus d'information au sujet de Docker Compose, voir la documentation.
Installation de la licence SquashTM
Les instructions pour l'installation de la licence et des plugins SquashTM sont disponibles ici.
Utilisation du conteneur SquashTM avec un reverse proxy
Deux exemples de docker-compose.yml permettant de déployer SquashTM derriÚre un reverse proxy sont disponibles sur notre GitLab :
- Déploiement de SquashTM avec une base de données PostgreSQL et un Reverse-Proxy
- Déploiement de SquashTM avec une base de données MariaDB et un Reverse-Proxy
Ces solutions utilisent une image docker de jwilder basée sur nginx-proxy.
Voici un exemple de SquashTM déployé derriÚre un reverse-proxy en utilisant une base de données PostgreSQL :
services:
squashtm-pg:
container_name: squashtm-pg
environment:
POSTGRES_DB: ${DB_DATABASE}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USER}
image: postgres:17
ports:
- 5432:5432
# Décommentez ci-dessous pour avoir des données persistantes
# volumes:
# - "/chemin/local/de/vos/data:/var/lib/postgresql/data"
networks:
- db-network
squashtm:
depends_on:
- squashtm-pg
environment:
SQTM_DB_TYPE: postgresql
SQTM_DB_USERNAME: ${DB_USER}
SQTM_DB_PASSWORD: ${DB_PASSWORD}
SQTM_DB_NAME: ${DB_DATABASE}
VIRTUAL_HOST: mysquash.example.com
SQTM_DB_PORT: "5432"
SQTM_DB_HOST: squashtm-pg
ports:
- 8090:8080
image: squashtest/squash:14.0.0
volumes:
- squashtm-logs:/opt/squash-tm/logs
# Décommentez ci-dessous si vous souhaitez activer les plugins intégrés.
#- your/path/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg
networks:
- nginx-proxy
- db-network
nginx-proxy:
container_name: nginx
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- nginx-proxy
volumes:
squashtm-logs:
networks:
nginx-proxy:
db-network:
Et le fichier .env :
DB_USER=squashtm
DB_PASSWORD=MustB3Ch4ng3d
DB_DATABASE=squashtm
Si vous disposez de vos propres plugins, ajoutez dans les volumes : squashtm-plugins:/opt/squash-tm/plugins (voir ici).
Kubernetes
Le manifeste Kubernetes exemple de SquashTM se trouve ici.
Pour cette installation rapide, un cluster Kubernetes ou Minikube est nécessaire.
Premium uniquement : Créer un secret à partir du fichier de licence :
kubectl create secret generic squashtm-prod-license --from-file=licensefile=./squash-tm.licFacultatif : Activer les plugins intégrés et configurer SquashTM grùce à des configMaps :
Ă l'aide de la documentation, modifier le fichier
start-plugins.cfgetsquash.tm.cfg.properties:- Le fichier d'activation des plugins
start-plugins.cfgest défini ici et le lien vers la documentation ici. - Le fichier de configuration
squash.tm.cfg.propertiesest défini ici.
Créer les configMaps :
kubectl create configmap config-squash-tm --from-file=./squash.tm.cfg.properties kubectl create configmap config-plugin-tm --from-file=./start-plugins.cfg- Le fichier d'activation des plugins
Exécuter le déploiement :
Dépendamment des étapes 1 ou 2, dans le fichier exemple, décommenter les lignes correspondantes dans le manifeste K8S de SquashTM.
kubectl apply -f ./squash-mariadb.yaml # ou postgresqlAccéder à SquashTM :
Récupérer l'IP du service avec la commande ci-dessous.
Récupérer l'External IP.kubectl get svc
L'adresse de SquashTM est alorshttp://<EXTERNAL-IP>:8080/squash.L'adresse de SquashTM est alorssudo minikube tunnel # Nécessaire pour accéder au loadbalancerhttp://localhost:8080/squash.
Utilisation des plugins intégrés
L'image SquashTM, version 6.0.0 et ultérieure, intÚgre tous les plugins officiels de SquashTM.
Comme l'image vise Ă ĂȘtre prĂȘte pour Kubernetes, il n'est plus nĂ©cessaire de tĂ©lĂ©charger et de monter un volume avec les plugins en tant que fichiers JAR.
Cela est remplacé par un configmap à attacher dans le répertoire conf.
Attention
Cette fonctionnalité ne concerne que l'image Docker. L'installation serveur, à l'aide du jar, nécessite toujours une installation manuelle des plugins.
Afin d'activer un plugin, l'utilisateur doit remplacer le fichier de configuration dans le chemin spécifié /opt/squash-tm/conf/start-plugins.cfg.
Le fichier se situe ici ou bien dans l'image au chemin spécifié.
Pour attacher et surcharger le fichier existant dans l'image :
- Dans Docker, utiliser le volume :
-v $(pwd)/conf/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg Dans Kubernetes, utiliser une configmap :
volumeMounts: - name: plugins-config mountPath: /opt/squash-tm/conf/start-plugins.cfg subPath: start-plugins.cfg
Pour activer un plugin il suffit de dĂ©commenter la ligne. Exemple : |# apt-rest ---> |api-rest (oĂč | reprĂ©sente le bord gauche du fichier).
Info
Bien que tous les plugins officiels soient présents, si vous souhaitez utiliser des plugins non répertoriés, vous pouvez placer les vÎtres dans des sous-répertoires du dossier /opt/squash-tm/plugins. (Ce n'est pas la méthode recommandée et maintenue pour utiliser cette image).
Voici une liste complĂšte des plugins intĂ©grĂ©s disponibles pour chaque licence, qui peuvent ĂȘtre activĂ©s lors du dĂ©ploiement de SquashTM via une image Docker. Pour activer des plugins spĂ©cifiques, il suffit de mapper le fichier comme suit : path/to/your/file/start-plugins.cfg:/opt/squash-tm/conf/start-plugins.cfg. Commenter les plugins qui ne doivent pas ĂȘtre installĂ©s.
Bien que la licence Ultimate permette l'utilisation des plugins Community, il n'est pas possible d'utiliser les deux types d'un mĂȘme plugin en mĂȘme temps.
La liste exhaustive des plugins avec leurs descriptions est disponible ici et leurs versions téléchargeables ici.
Une fois qu'un plugin a Ă©tĂ© activĂ©, il ne peut ĂȘtre supprimĂ© que manuellement.
#### Autom-DevOps ####
scm-git
#### Bugtracker ####
bugzilla
gitlab
#### Sync ####
xsquash4gitlab
#### API ####
api-rest-admin
#### Autom-DevOps ####
scm-git
#### Bugtracker ####
azure-devops
bugzilla
gitlab
jiracloud
jiradatacenter
redmine
tuleap
#### Premium ####
squash-tm-premium
#### Report ####
campaign-execution
#### Security ####
ad
ldap
saml
openid-connect
#### Sync ####
redmine-requirements
xsquash4gitlab
#### Wizard ####
campaignassistant
#### API ####
api-rest-admin
#### Autom-DevOps ####
scm-git
#### Autom JIRA ####
workflow-automjira
#### Bugtracker ####
azure-devops
bugzilla
gitlab
jiracloud
jiradatacenter
redmine
tuleap
#### Premium ####
squash-tm-premium
#### Report ####
campaign-execution
#### Security ####
ad
ldap
saml
openid-connect
#### Sync ####
redmine-requirements
xsquash4gitlab
#### Wizard ####
campaignassistant
Importer un certificat
Récupérer le certificat et l'enregistrer dans un sous-répertoire
certs.Dans ce sous-répertoire
certs, crĂ©er un fichier de scriptimport-certs.shavec le contenu suivant :Rendre ce fichier exĂ©cutable.#!/bin/sh set -e CERT_DIR="/tmp/certs" CACERTS_PATH=$(find /opt/java /usr/lib/jvm -name cacerts 2>/dev/null | head -n 1) if [ -z "$CACERTS_PATH" ]; then echo "ERROR: cacerts not found" exit 0 fi echo "===== Importing SSL certificates =====" echo "Using cacerts: $CACERTS_PATH" for cert in "$CERT_DIR"/*.crt "$CERT_DIR"/*.cer "$CERT_DIR"/*.pem; do [ -f "$cert" ] || continue ALIAS=$(basename "$cert" | sed 's/\.[^.]*$//') # Check if the certificate already exists if keytool -list -keystore "$CACERTS_PATH" -storepass changeit -alias "$ALIAS" >/dev/null 2>&1; then echo "â Certificate $ALIAS already exists, skipped" continue fi # Import the certificate echo "â Importing certificate: $ALIAS" if keytool -import -trustcacerts \ -alias "$ALIAS" \ -file "$cert" \ -keystore "$CACERTS_PATH" \ -storepass changeit \ -noprompt; then echo "â Certificate $ALIAS imported successfully" else echo "â Failed to import $ALIAS, continuing..." fi done echo "===== Certificate import completed ====="Modifier le fichier
docker-compose.ymlen y ajoutant :- un montage bind :
./certs:/tmp/certs:ro - un point d'entrée :
["/bin/sh", "-c", "[ -f /tmp/certs/import-certs.sh ] && /tmp/certs/import-certs.sh ; /sbin/tini -- /bin/sh -c /opt/install-script.sh"]
Par exemple :
services: squashtm-pg: container_name: squashtm-pg environment: POSTGRES_DB: squashtm POSTGRES_USER: squashtm POSTGRES_PASSWORD: MustB3Ch4ng3d image: postgres:17 ports: - 5432:5432 squashtm: container_name: squashtm image: squashtest/squash:14.0.0 entrypoint: ["/bin/sh", "-c", "[ -f /tmp/certs/import-certs.sh ] && /tmp/certs/import-certs.sh ; /sbin/tini -- /bin/sh -c /opt/install-script.sh"] depends_on: - squashtm-pg environment: SPRING_PROFILES_ACTIVE: postgresql SPRING_DATASOURCE_URL: jdbc:postgresql://squashtm-pg:5432/squashtm SPRING_DATASOURCE_USERNAME: squashtm SPRING_DATASOURCE_PASSWORD: MustB3Ch4ng3d ports: - 8090:8080 volumes: - squashtm-logs:/opt/squash-tm/logs - ./certs:/tmp/certs:ro volumes: squashtm-logs:- un montage bind :
Sauvegarde des données avec des volumes persistants
Les volumes suivants doivent ĂȘtre montĂ©s pour que les donnĂ©es correspondantes soient conservĂ©es :
- base de données
/var/lib/postgresql/data # Data location for PostgreSQL /var/lib/mysql # Data location for MariaDB - fichiers de log
/opt/squash-tm/logs - file d'attente des imports Xray
/opt/squash-tm/imports
Pour plus d'informations, consultez la section Managing data in containers dans la documentation Docker.
Annexes
Variables d'environnement des bases de données
Ătant donnĂ© que nous utilisons souvent des images de conteneurs de base de donnĂ©es existants, nous mettons ici en Ă©vidence une sĂ©lection de variables d'environnement pertinentes pour plus de commoditĂ©, ainsi que des liens menant Ă leur documentation.
Variables d'environnement de l'image PostgreSQL
POSTGRES_PASSWORD
Cette variable d'environnement définit le mot de passe du superutilisateur pour PostgreSQL. Le superutilisateur par défaut est défini par la variable d'environnement POSTGRES_USER.
POSTGRES_USER
Cette variable d'environnement optionnelle est utilisée en conjonction avec POSTGRES_PASSWORD pour définir un utilisateur et son mot de passe.
Cette variable crĂ©era l'utilisateur spĂ©cifiĂ© avec le pouvoir de super-utilisateur et une base de donnĂ©es avec le mĂȘme nom. Si elle n'est pas spĂ©cifiĂ©e, l'utilisateur par dĂ©faut postgres sera utilisĂ©.
POSTGRES_DB
Cette variable d'environnement optionnelle peut ĂȘtre utilisĂ©e pour dĂ©finir un nom diffĂ©rent pour la base de donnĂ©es par dĂ©faut créée lors de la premiĂšre exĂ©cution. Si elle n'est pas spĂ©cifiĂ©e, la valeur de POSTGRES_USER sera utilisĂ©e.
Pour plus d'informations et de variables d'environnement optionnelles, consultez la documentation de l'image PostgreSQL.
Variables d'environnement de l'image MariaDB
MARIADB_ROOT_PASSWORD
Cette variable est obligatoire et spécifie le mot de passe qui sera défini pour le compte superutilisateur root de MariaDB.
MARIADB_DATABASE
Cette variable est facultative et vous permet de spécifier le nom d'une base de données à créer au démarrage de l'image. Si un utilisateur et un mot de passe ont été fournis, cet utilisateur se verra accorder l'accÚs superutilisateur correspondant à GRANT ALL sur cette base de données.
MARIADB_USER, MARIADB_PASSWORD
Ces variables sont optionnelles, utilisées conjointement pour créer un nouvel utilisateur et définir son mot de passe. Cet utilisateur se verra accorder les permissions de superutilisateur (voir ci-dessus) pour la base de données spécifiée par la variable MARIADB_DATABASE. Ces deux variables sont nécessaires pour créer un utilisateur.
Notez qu'il n'est pas nécessaire d'utiliser ce mécanisme pour créer le superutilisateur root, cet utilisateur est créé par défaut avec le mot de passe spécifié par la variable MARIADB_ROOT_PASSWORD.
Pour plus d'informations et pour connaĂźtre les variables d'environnement optionnelles, consultez la documentation de l'image MariaDB.
UID et GID
à partir de Squash TM 6.1.0, le processus principal s'exécutera en tant que uid=1000 et gid=1000 (connu sous le nom de squashtm:squashtm à l'intérieur du conteneur). Depuis Squash TM 1.21.4, le processus s'exécutait en tant que uid=100 et gid=101, et avant cela en tant que root.
Dans le cadre d'un dĂ©ploiement utilisant Kubernetes, si vous utilisez un Security Context, les valeurs suivantes doivent ĂȘtre entrĂ©es :
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000