FROM camunda/camunda-bpm-platform:tomcat # -7.13.0 # 12.08.2020 - 7.12.0 # -7.13.0 LABEL maintainer="ich" # https://hub.docker.com/r/camunda/camunda-bpm-platform # ARG PROXY_SERVER=${PROXY_SERVER} ENV http_proxy="${PROXY_SERVER}" ENV https_proxy="${PROXY_SERVER}" ENV proxy="${PROXY_SERVER}" ENV sproxy="${PROXY_SERVER}" ENV no_proxy="localhost,127.0.0.1" # ARG SSL_KEYPASS=6Z3OGsiLlV9NkBUC ARG CATALINA_HOME=/camunda ENV TZ="Europe/Berlin" \ SSL_KEYPASS=${SSL_KEYPASS} \ CATALINA_HOME=${CATALINA_HOME} \ CATALINA_TIMEZONE=-Duser.timezone=${TZ} \ CATALINA_SSL_CONF_1=-Djavax.net.ssl.trustStore=${CATALINA_HOME}/conf/localhost.truststore \ CATALINA_SSL_CONF_2=-Djavax.net.ssl.trustStorePassword=${SSL_KEYPASS} \ CATALINA_SSL_CONF_3=-Djavax.net.debug=ssl:handshake \ CATALINA_SSL_CONF_4=-Djavax.net.debug=all \ CATALINA_LOGBACK_JNDI=-Dlogback.ContextSelector=JNDI \ CATALINA_LOAD_MANAGER=-Dorg.apache.juli.ClassLoaderLogManager.debug=true \ CAMUNDA_KEYCLOAK_PLUGIN_JAR_FILE=camunda-bpm-identity-keycloak-all.jar ENV CATALINA_OPTS="${CATALINA_OPTS} ${CATALINA_TIMEZONE} ${CATALINA_SSL_CONF_1} ${CATALINA_SSL_CONF_2} ${CATALINA_LOGBACK_JNDI}" # ${CATALINA_SSL_CONF_3} ${CATALINA_SSL_CONF_4} ${CATALINA_LOAD_MANAGER}" ARG KEYCLOAK_TOMCAT_ADAPTER_VERSION=${KEYCLOAK_TOMCAT_ADAPTER_VERSION} ARG CAMUNDA_KEYCLOAK_ADAPTER_VERSION=${CAMUNDA_KEYCLOAK_ADAPTER_VERSION} ARG MAIL_PROPERTY_FILE=${MAIL_PROPERTY_FILE} ENV INIT_JSON_FILTER=init-filter.json \ INIT_BPMN_MUSTER_E_MAIL=BPMN-Muster-E-Mail-Send.bpmn USER root RUN apk add --no-cache \ mc \ vim \ jq \ mailx \ bind-tools \ sudo \ zip \ tzdata ENV TZ=UTC RUN echo "camunda ALL=(ALL) NOPASSWD: ALL">>/etc/sudoers # Keycloak Provider Install COPY keycloak/camunda-bpm-identity-keycloak-all-${CAMUNDA_KEYCLOAK_ADAPTER_VERSION}.jar ${CATALINA_HOME}/lib/${CAMUNDA_KEYCLOAK_PLUGIN_JAR_FILE} RUN rm -R ${CATALINA_HOME}/webapps/examples # RUN rm -R ${CATALINA_HOME}/webapps/ROOT COPY keycloak/keycloak-tomcat-adapter-dist-${KEYCLOAK_TOMCAT_ADAPTER_VERSION}.zip /tmp/keycloak-tomcat-adapter-dist.zip RUN cd ${CATALINA_HOME}/lib && unzip -q /tmp/keycloak-tomcat-adapter-dist.zip # Konfiguration fuer tomcat-manager etc. COPY keycloak/conf/keycloak.json ${CATALINA_HOME}/conf/keycloak.json # Mail # https://github.com/camunda/camunda-bpm-mail COPY mail/lib/*.jar ${CATALINA_HOME}/lib/ COPY mail/conf/${MAIL_PROPERTY_FILE} ${CATALINA_HOME}/lib/mail-config.properties RUN ls -ltr ${CATALINA_HOME}/lib/*mail* # if [ -e ${CATALINA_HOME}/lib/mail-1.4.1.jar ]; then # rm ${CATALINA_HOME}/lib/mail-1.4.1.jar # fi; COPY mail/bpmn/${INIT_BPMN_MUSTER_E_MAIL} ${CATALINA_HOME}/ #### # Build java project RUN apk add maven ENV MAVEN_SETTING_SCRIPT=setMavenProxySettings.sh COPY scripts/${MAVEN_SETTING_SCRIPT} /tmp/ RUN chmod +x /tmp/${MAVEN_SETTING_SCRIPT} && dos2unix -u /tmp/${MAVEN_SETTING_SCRIPT} && /tmp/${MAVEN_SETTING_SCRIPT} ARG ECLIPSE_TEMP_DIR=/tmp/eclipse ARG MAVEN_QUIET=-q RUN mkdir ${ECLIPSE_TEMP_DIR} COPY keycloak/camunda-bpm-auth-keycloak-sso-master.zip ${ECLIPSE_TEMP_DIR}/ RUN cd ${ECLIPSE_TEMP_DIR} && unzip -q camunda-bpm-auth-keycloak-sso-master.zip RUN cd ${ECLIPSE_TEMP_DIR} \ && MAVEN_PROJECT_NAME=camunda-bpm-auth-keycloak-sso-master \ && echo " ###################### Maven ${MAVEN_PROJECT_NAME} ###################### ..." \ && echo cat ${MAVEN_PROJECT_NAME}/pom.xml \ && cd ${MAVEN_PROJECT_NAME} \ && mvn ${MAVEN_QUIET} package \ && mvn ${MAVEN_QUIET} install \ && ls -l target/*.jar \ && cp -av target/camunda-bpm-auth-keycloak-sso-*.jar ${CATALINA_HOME}/webapps/camunda/WEB-INF/lib/ \ && cd ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_NAME} \ && rmdir --ignore-fail-on-non-empty target \ && ls -lh ${CATALINA_HOME}/webapps/camunda/WEB-INF/lib/*keycloak*.jar \ && echo " ###################### Maven ${MAVEN_PROJECT_NAME} ###################### done" #### copy json # COPY keycloak/conf/web-camunda.xml ${CATALINA_HOME}/webapps/camunda/WEB-INF/web-camunda.xml COPY keycloak/conf/web-camunda.xml ${CATALINA_HOME}/webapps/camunda/WEB-INF/web.xml COPY keycloak/conf/keycloak-sso.json ${CATALINA_HOME}/webapps/camunda/WEB-INF/keycloak.json COPY keycloak/conf/context.xml ${CATALINA_HOME}/webapps/camunda/META-INF/context.xml # logback ARG MAVEN_PROJECT_UTL=UserTaskListener ENV JAR_FILE_NAME_UTL=bpmn-usertasklistener-plugin RUN mkdir -p ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_UTL} COPY eclipse/${MAVEN_PROJECT_UTL}/ ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_UTL}/ RUN cd ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_UTL} \ && ln -s $CATALINA_HOME/lib ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_UTL} \ && echo " ###################### Maven ${MAVEN_PROJECT_UTL} ###################### ..." \ && mvn ${MAVEN_QUIET} package \ && mvn ${MAVEN_QUIET} install \ && cd ${CATALINA_HOME}/lib \ && mv ${MAVEN_PROJECT_UTL}Plugin.jar ${JAR_FILE_NAME_UTL}.jar \ && rm -R ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_UTL} \ && echo ls -ltr . \ && echo " ###################### Maven ${MAVEN_PROJECT_UTL} ###################### done" ARG MAVEN_PROJECT_WSA=WebSocketAppender ENV JAR_FILE_NAME_WSA=bpmn-websocket-appender RUN mkdir -p ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_WSA} COPY eclipse/${MAVEN_PROJECT_WSA}/ ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_WSA}/ RUN cd ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_WSA} \ && ln -s $CATALINA_HOME/lib ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_WSA} \ && echo " ###################### Maven ${MAVEN_PROJECT_WSA} ###################### ..." \ && mvn ${MAVEN_QUIET} package \ && mvn ${MAVEN_QUIET} install \ && cd ${CATALINA_HOME}/lib \ && mv ${MAVEN_PROJECT_WSA}.jar ${JAR_FILE_NAME_WSA}.jar \ && echo ls -ltr . \ && rm -R ${ECLIPSE_TEMP_DIR}/${MAVEN_PROJECT_WSA} \ && echo unzip ${JAR_FILE_NAME_WSA}.jar *.class \ && echo ls -ltrR . \ && echo " ###################### Maven ${MAVEN_PROJECT_WSA} ###################### done" ARG LOGBACK_JULI_VERSION=${LOGBACK_JULI_VERSION} ENV TOMCAT_JULI_ZIP_FILE=tomcat-juli-slf4j-logback.zip COPY logback/tomcat-juli-slf4j-logback/${LOGBACK_JULI_VERSION}.zip ${CATALINA_HOME}/${TOMCAT_JULI_ZIP_FILE} COPY scripts/initLogback.sh ${CATALINA_HOME}/initLogback.sh RUN cd ${CATALINA_HOME} && dos2unix initLogback.sh && chmod +x initLogback.sh RUN grep "initLogback.sh" ${CATALINA_HOME}/camunda.sh || sed -i -e '$ i \.\/initLogback.sh' ${CATALINA_HOME}/camunda.sh RUN tail -5 ${CATALINA_HOME}/camunda.sh COPY scripts/initCamunda.sh ${CATALINA_HOME}/initCamunda.sh RUN cd ${CATALINA_HOME} && dos2unix initCamunda.sh && chmod +x initCamunda.sh COPY scripts/initTomcatTruststore.sh ${CATALINA_HOME}/initTomcatTruststore.sh RUN cd ${CATALINA_HOME} && dos2unix initTomcatTruststore.sh && chmod +x initTomcatTruststore.sh RUN grep "initTomcatTruststore.sh" ${CATALINA_HOME}/camunda.sh || sed -i -e '$ i \.\/initTomcatTruststore.sh' ${CATALINA_HOME}/camunda.sh RUN tail -5 ${CATALINA_HOME}/camunda.sh COPY scripts/initKeycloakForCamunda.sh ${CATALINA_HOME}/initKeycloakForCamunda.sh RUN cd ${CATALINA_HOME} && dos2unix initKeycloakForCamunda.sh && chmod +x initKeycloakForCamunda.sh RUN grep "initKeycloakForCamunda.sh" ${CATALINA_HOME}/camunda.sh || sed -i -e '$ i \.\/initKeycloakForCamunda.sh' ${CATALINA_HOME}/camunda.sh RUN tail -5 ${CATALINA_HOME}/camunda.sh COPY scripts/initTomcat.sh ${CATALINA_HOME}/initTomcat.sh RUN cd ${CATALINA_HOME} && dos2unix initTomcat.sh && chmod +x initTomcat.sh RUN grep "initTomcat.sh" ${CATALINA_HOME}/camunda.sh || sed -i -e '$ i \.\/initTomcat.sh' ${CATALINA_HOME}/camunda.sh RUN tail -5 ${CATALINA_HOME}/camunda.sh RUN chown -R camunda . && chgrp -R camunda . USER camunda