From 00659438626eca104954bf72ae16981beb625545 Mon Sep 17 00:00:00 2001 From: Benoit DUMONT Date: Sat, 25 Jan 2025 22:25:35 +0100 Subject: [PATCH] chore:docker new cerberus-as-tomcat-keycloak-4.19 version --- .../4.19/Dockerfile | 75 +++++++ .../4.19/context.xml | 35 ++++ .../4.19/entrypoint.sh | 26 +++ .../4.19/server.xml | 186 ++++++++++++++++++ .../cerberus-as-tomcat-keycloak/README.md | 1 + .../latest/Dockerfile | 2 +- 6 files changed, 324 insertions(+), 1 deletion(-) create mode 100644 docker/images/cerberus-as-tomcat-keycloak/4.19/Dockerfile create mode 100644 docker/images/cerberus-as-tomcat-keycloak/4.19/context.xml create mode 100644 docker/images/cerberus-as-tomcat-keycloak/4.19/entrypoint.sh create mode 100644 docker/images/cerberus-as-tomcat-keycloak/4.19/server.xml diff --git a/docker/images/cerberus-as-tomcat-keycloak/4.19/Dockerfile b/docker/images/cerberus-as-tomcat-keycloak/4.19/Dockerfile new file mode 100644 index 0000000000..80452b08b7 --- /dev/null +++ b/docker/images/cerberus-as-tomcat-keycloak/4.19/Dockerfile @@ -0,0 +1,75 @@ +FROM tomcat:9-jre11-temurin + +ENV LOG_ROOT_PATH /usr/local/tomcat/logs/ + +ENV KEYCLOACK_REALM Cerberus +ENV KEYCLOACK_CLIENT cerberus +ENV KEYCLOACK_URL http://192.168.1.1:8080/auth +ENV CATALINA_OPTS="-Dorg.cerberus.environment=prd -Dorg.cerberus.authentification=keycloak -Xmx1024m" +ENV KEYCLOACK_VERSION 18.0.1 +ENV KEYCLOACK_TOMCAT8_ADAPTER_NAME keycloak-oidc-tomcat-adapter-${KEYCLOACK_VERSION} + +ENV DATABASE_HOST cerberus-db-mysql +ENV DATABASE_PORT 3306 +ENV DATABASE_NAME cerberus +ENV DATABASE_USER cerberus +ENV DATABASE_PASSWORD toto + +ARG CERBERUS_NAME=cerberus-core +ARG CERBERUS_VERSION=4.19 +ARG CERBERUS_PACKAGE_NAME=${CERBERUS_NAME}-${CERBERUS_VERSION} + +ARG MYSQL_JAVA_CONNECTOR_VERSION=9.0.0 +ARG MYSQL_JAVA_CONNECTOR_NAME=mysql-connector-j-${MYSQL_JAVA_CONNECTOR_VERSION} + + +RUN apt-get update -qqy \ + && apt-get -qqy install \ + unzip dos2unix \ + && rm -rf /var/lib/apt/lists/* /var/cache/apt/* + +# Download and install MySQL JDBC Drivers +RUN echo "Download & install MySQL JDBC Drivers" && \ + wget -P /tmp/ https://downloads.mysql.com/archives/get/p/3/file/${MYSQL_JAVA_CONNECTOR_NAME}.zip && \ + unzip -q -d /tmp/ /tmp/${MYSQL_JAVA_CONNECTOR_NAME}.zip && \ + mv /tmp/${MYSQL_JAVA_CONNECTOR_NAME}/${MYSQL_JAVA_CONNECTOR_NAME}.jar /usr/local/tomcat/lib/ && \ + echo "Clean temp directory" && \ + rm /tmp/* -rf +#COPY mysql-connector-java-5.1.20-bin.jar /usr/local/tomcat/lib/ + +# Only for debug purpose +#RUN ls -al /usr/local/tomcat/lib/ +# https://github.com/keycloak/keycloak/releases/download/${KEYCLOACK_VERSION}/keycloak-oidc-tomcat-adapter-${KEYCLOACK_VERSION}.zip +# https://downloads.jboss.org/keycloak/${KEYCLOACK_VERSION}/adapters/keycloak-oidc/${KEYCLOACK_TOMCAT8_ADAPTER_NAME}.zip +# Download & install KeyCloak adapter to manage authentification with Tomcat +RUN wget -P /tmp/ https://github.com/keycloak/keycloak/releases/download/${KEYCLOACK_VERSION}/${KEYCLOACK_TOMCAT8_ADAPTER_NAME}.zip && \ + unzip -q -d /usr/local/tomcat/lib/ /tmp/${KEYCLOACK_TOMCAT8_ADAPTER_NAME}.zip && \ + echo "Clean temp directory" && \ + rm /tmp/* -rf +#COPY ${KEYCLOACK_TOMCAT8_ADAPTER_NAME}.zip /tmp/ + +# Only for debug purpose +#RUN ls -al /usr/local/tomcat/lib/ + +# Download & install Cerberus Application +RUN echo "Download & install Cerberus Application" && \ + wget -P /tmp/ https://github.com/cerberustesting/cerberus-source/releases/download/cerberus-testing-${CERBERUS_VERSION}/cerberus-core-${CERBERUS_VERSION}.zip && \ + unzip -q -d /tmp /tmp/${CERBERUS_PACKAGE_NAME}.zip && \ + rm -rf /usr/local/tomcat/webapps/* && \ + cp /tmp/${CERBERUS_PACKAGE_NAME}/${CERBERUS_PACKAGE_NAME}.war /usr/local/tomcat/webapps/ROOT.war && \ + echo "Clean temp directory" && \ + rm /tmp/* -rf +#COPY Cerberus-3.12-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war + +# Only for debug purpose +#RUN ls -al /usr/local/tomcat/webapps/ + +# Configure Tomcat for Cerberus need. +COPY *.xml /usr/local/tomcat/conf/ + +# Only for debug purpose +#RUN echo ${CATALINA_OPTS} + +COPY entrypoint.sh /entrypoint.sh +RUN dos2unix /entrypoint.sh && chmod u+x /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/images/cerberus-as-tomcat-keycloak/4.19/context.xml b/docker/images/cerberus-as-tomcat-keycloak/4.19/context.xml new file mode 100644 index 0000000000..e7cdc0ece5 --- /dev/null +++ b/docker/images/cerberus-as-tomcat-keycloak/4.19/context.xml @@ -0,0 +1,35 @@ + + + + + + + + WEB-INF/web.xml + WEB-INF/tomcat-web.xml + ${catalina.base}/conf/web.xml + + + + + + diff --git a/docker/images/cerberus-as-tomcat-keycloak/4.19/entrypoint.sh b/docker/images/cerberus-as-tomcat-keycloak/4.19/entrypoint.sh new file mode 100644 index 0000000000..5cf856bf0e --- /dev/null +++ b/docker/images/cerberus-as-tomcat-keycloak/4.19/entrypoint.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# Cerberus Copyright (C) 2016 Cerberus Testing +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This file is part of Cerberus. +# +# Cerberus is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Cerberus is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Cerberus. If not, see . + +# Cerberus Tomcat configuration (with Keycloack acticated) + +export CATALINA_OPTS="$CATALINA_OPTS -DDATABASE_HOST=$DATABASE_HOST -DDATABASE_PORT=$DATABASE_PORT -DDATABASE_NAME=$DATABASE_NAME -DDATABASE_USER=$DATABASE_USER -DDATABASE_PASSWORD=$DATABASE_PASSWORD -Dorg.cerberus.authentification=keycloak -Dorg.cerberus.keycloak.realm=${KEYCLOAK_REALM} -Dorg.cerberus.keycloak.client=${KEYCLOAK_CLIENT} -Dorg.cerberus.keycloak.url=${KEYCLOAK_URL}" + +/usr/local/tomcat/bin/catalina.sh start + +tail -F /usr/local/tomcat/logs/catalina.out diff --git a/docker/images/cerberus-as-tomcat-keycloak/4.19/server.xml b/docker/images/cerberus-as-tomcat-keycloak/4.19/server.xml new file mode 100644 index 0000000000..19854fed90 --- /dev/null +++ b/docker/images/cerberus-as-tomcat-keycloak/4.19/server.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docker/images/cerberus-as-tomcat-keycloak/README.md b/docker/images/cerberus-as-tomcat-keycloak/README.md index 45f377d8a0..ed9af48cd0 100644 --- a/docker/images/cerberus-as-tomcat-keycloak/README.md +++ b/docker/images/cerberus-as-tomcat-keycloak/README.md @@ -11,6 +11,7 @@ Hereafter list of available tags: Tag | Description | Source --------|------------------------------------|------------------------------- latest | Use the latest Cerberus version | [latest/Dockerfile](https://github.com/cerberustesting/cerberus-source/blob/master/docker/images/cerberus-as-tomcat-keycloak/latest/Dockerfile) +4.19 | Use the 4.19 Cerberus version | [4.19/Dockerfile](https://github.com/cerberustesting/cerberus-source/blob/master/docker/images/cerberus-as-tomcat-keycloak/4.19/Dockerfile) 4.18 | Use the 4.18 Cerberus version | [4.18/Dockerfile](https://github.com/cerberustesting/cerberus-source/blob/master/docker/images/cerberus-as-tomcat-keycloak/4.18/Dockerfile) 4.17 | Use the 4.17 Cerberus version | [4.17/Dockerfile](https://github.com/cerberustesting/cerberus-source/blob/master/docker/images/cerberus-as-tomcat-keycloak/4.17/Dockerfile) 4.16 | Use the 4.16 Cerberus version | [4.16/Dockerfile](https://github.com/cerberustesting/cerberus-source/blob/master/docker/images/cerberus-as-tomcat-keycloak/4.16/Dockerfile) diff --git a/docker/images/cerberus-as-tomcat-keycloak/latest/Dockerfile b/docker/images/cerberus-as-tomcat-keycloak/latest/Dockerfile index aac9216e98..80452b08b7 100644 --- a/docker/images/cerberus-as-tomcat-keycloak/latest/Dockerfile +++ b/docker/images/cerberus-as-tomcat-keycloak/latest/Dockerfile @@ -16,7 +16,7 @@ ENV DATABASE_USER cerberus ENV DATABASE_PASSWORD toto ARG CERBERUS_NAME=cerberus-core -ARG CERBERUS_VERSION=4.18 +ARG CERBERUS_VERSION=4.19 ARG CERBERUS_PACKAGE_NAME=${CERBERUS_NAME}-${CERBERUS_VERSION} ARG MYSQL_JAVA_CONNECTOR_VERSION=9.0.0