
# Copyright 2019 Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# ------------------------------------------------------------------------
#
# This is a Dockerfile for the rhpam-7/rhpam-businesscentral-rhel8:1.0 image.

FROM ubi8:8-released

USER root

# Add scripts used to configure the image
COPY modules /tmp/scripts/

# Add all artifacts to the /tmp/artifacts directory
COPY \
    jboss-eap-7.2.3-patch.zip \
    artifacts/jboss-eap-7.2.zip \
    business_central_distribution.zip \
    artifacts/jolokia-jvm-1.6.2.redhat-00002-agent.jar \
    artifacts/txn-recovery-marker-jdbc-common-1.1.2.Final-redhat-00001.jar \
    artifacts/txn-recovery-marker-jdbc-hibernate5-1.1.2.Final-redhat-00001.jar \
    artifacts/openshift-ping-common-1.2.6.Final-redhat-1.jar \
    artifacts/openshift-ping-dns-1.2.6.Final-redhat-1.jar \
    artifacts/openshift-ping-kube-1.2.6.Final-redhat-1.jar \
    artifacts/oauth-20100527.jar \
    activemq-rar-5.11.0.redhat-630371.rar \
    artifacts/rh-sso-7.3.1-eap7-adapter.zip \
    artifacts/rh-sso-7.3.1-saml-eap7-adapter.zip \
    artifacts/jmx_prometheus_javaagent-0.3.1.redhat-00006.jar \
    /tmp/artifacts/

# begin jboss.container.user:1.0

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y unzip tar rsync shadow-utils \
    && rpm -q unzip tar rsync shadow-utils

# Environment variables
ENV \
    HOME="/home/jboss" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.user/configure.sh" ]

# end jboss.container.user:1.0
# begin jboss.container.openjdk.jdk:11

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y java-11-openjdk-devel \
    && rpm -q java-11-openjdk-devel

# Environment variables
ENV \
    JAVA_HOME="/usr/lib/jvm/java-11" \
    JAVA_VENDOR="openjdk" \
    JAVA_VERSION="11.0" \
    JBOSS_CONTAINER_OPENJDK_JDK_MODULE="/opt/jboss/container/openjdk/jdk" 

# Labels
LABEL \
      org.jboss.product="openjdk"  \
      org.jboss.product.openjdk.version="11.0"  \
      org.jboss.product.version="11.0" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.openjdk.jdk/configure.sh" ]

# end jboss.container.openjdk.jdk:11
# begin jboss.container.java.jvm.api:1.0

# end jboss.container.java.jvm.api:1.0
# begin jboss.container.proxy.api:2.0

# end jboss.container.proxy.api:2.0
# begin jboss.container.java.proxy.bash:2.0

# Environment variables
ENV \
    JBOSS_CONTAINER_JAVA_PROXY_MODULE="/opt/jboss/container/java/proxy" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.java.proxy.bash/configure.sh" ]
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.java.proxy.bash/backward_compatibility.sh" ]

# end jboss.container.java.proxy.bash:2.0
# begin jboss.container.java.jvm.bash:1.0

# Environment variables
ENV \
    JBOSS_CONTAINER_JAVA_JVM_MODULE="/opt/jboss/container/java/jvm" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.java.jvm.bash/configure.sh" ]
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.java.jvm.bash/backward_compatibility.sh" ]

# end jboss.container.java.jvm.bash:1.0
# begin os-java-run:1.0

# end os-java-run:1.0
# begin dynamic-resources:1.0

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/dynamic-resources/install.sh" ]

# end dynamic-resources:1.0
# begin eap-7.2.0:None

# Environment variables
ENV \
    JBOSS_EAP_VERSION="7.2.0.GA" \
    JBOSS_HOME="/opt/eap" \
    JBOSS_PRODUCT="eap" \
    LAUNCH_JBOSS_IN_BACKGROUND="true" \
    PRODUCT_VERSION="7.2.0.GA" 

# Labels
LABEL \
      com.redhat.deployments-dir="/opt/eap/standalone/deployments"  \
      com.redhat.dev-mode="DEBUG:true"  \
      com.redhat.dev-mode.port="DEBUG_PORT:8787"  \
      org.jboss.product="eap"  \
      org.jboss.product.eap.version="7.2.0.GA"  \
      org.jboss.product.version="7.2.0.GA" 

# Exposed ports
EXPOSE 8080
# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/eap-7.2.0/install.sh" ]

# end eap-7.2.0:None
# begin eap-7.2.3:None

# Environment variables
ENV \
    JBOSS_EAP_VERSION="7.2.3.GA" \
    PRODUCT_VERSION="7.2.3.GA" 

# Labels
LABEL \
      org.jboss.product.eap.version="7.2.3.GA"  \
      org.jboss.product.version="7.2.3.GA" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/eap-7.2.3/install.sh" ]

# end eap-7.2.3:None
# begin eap-install-cleanup:None

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/eap-install-cleanup/install.sh" ]

# end eap-install-cleanup:None
# begin eap-7.2-latest:None

# end eap-7.2-latest:None
# begin rhpam-7-businesscentral:1.0

# Environment variables
ENV \
    BUSINESS_CENTRAL_DISTRIBUTION_EAP="jboss-eap-7.2" \
    BUSINESS_CENTRAL_DISTRIBUTION_ZIP="business_central_distribution.zip" \
    JBOSS_PRODUCT="rhpam-businesscentral" \
    PRODUCT_VERSION="7.5.0" \
    RHPAM_BUSINESS_CENTRAL_VERSION="7.5.0" 

# Labels
LABEL \
      org.jboss.product="rhpam-businesscentral"  \
      org.jboss.product.rhpam-businesscentral.version="7.5.0"  \
      org.jboss.product.version="7.5.0" 

# Exposed ports
EXPOSE 8001
# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/rhpam-7-businesscentral/install" ]

# end rhpam-7-businesscentral:1.0
# begin jboss.container.maven.35.bash:3.5

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y maven \
    && rpm -q maven

# Environment variables
ENV \
    JBOSS_CONTAINER_MAVEN_35_MODULE="/opt/jboss/container/maven/35/" \
    MAVEN_VERSION="3.5" 

# Labels
LABEL \
      io.fabric8.s2i.version.maven="3.5" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.maven.35.bash/configure.sh" ]

# end jboss.container.maven.35.bash:3.5
# begin jboss.container.maven.api:1.0

# end jboss.container.maven.api:1.0
# begin jboss.container.util.logging.bash:1.0

# Environment variables
ENV \
    JBOSS_CONTAINER_UTIL_LOGGING_MODULE="/opt/jboss/container/util/logging/" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.util.logging.bash/configure.sh" ]
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.util.logging.bash/backward_compatibility.sh" ]

# end jboss.container.util.logging.bash:1.0
# begin jboss.container.maven.default.bash:1.0

# Environment variables
ENV \
    JBOSS_CONTAINER_MAVEN_DEFAULT_MODULE="/opt/jboss/container/maven/default/" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.maven.default.bash/configure.sh" ]
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.maven.default.bash/backward_compatibility.sh" ]

# end jboss.container.maven.default.bash:1.0
# begin jboss.container.jolokia.api:1.0

# Environment variables
ENV \
    AB_JOLOKIA_AUTH_OPENSHIFT="true" \
    AB_JOLOKIA_HTTPS="true" \
    AB_JOLOKIA_PASSWORD_RANDOM="true" 

# end jboss.container.jolokia.api:1.0
# begin jboss.container.jolokia.bash:1.0

# Environment variables
ENV \
    AB_JOLOKIA_AUTH_OPENSHIFT="true" \
    AB_JOLOKIA_HTTPS="true" \
    AB_JOLOKIA_PASSWORD_RANDOM="true" \
    JBOSS_CONTAINER_JOLOKIA_MODULE="/opt/jboss/container/jolokia" \
    JOLOKIA_VERSION="1.6.2" 

# Labels
LABEL \
      io.fabric8.s2i.version.jolokia="1.6.2-redhat-00002" 

# Exposed ports
EXPOSE 8778
# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.jolokia.bash/configure.sh" ]
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.jolokia.bash/backward_compatibility.sh" ]

# end jboss.container.jolokia.bash:1.0
# begin os-java-jolokia:1.0

# end os-java-jolokia:1.0
# begin jboss.eap.cd.jolokia:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.cd.jolokia/configure.sh" ]

# end jboss.eap.cd.jolokia:1.0
# begin os-eap7-openshift:1.0

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/os-eap7-openshift/prepare.sh" ]
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap7-openshift/configure.sh" ]

# end os-eap7-openshift:1.0
# begin jboss.eap72.openshift:1.0-openjdk11

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap72.openshift/configure.sh" ]

# end jboss.eap72.openshift:1.0-openjdk11
# begin jboss.eap.cd.openshift.modules:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.cd.openshift.modules/configure.sh" ]

# end jboss.eap.cd.openshift.modules:1.0
# begin os-eap7-ping:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap7-ping/configure.sh" ]

# end os-eap7-ping:1.0
# begin os-eap-activemq-rar:1.1

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-activemq-rar/configure.sh" ]

# end os-eap-activemq-rar:1.1
# begin os-eap-launch:1.0

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y hostname \
    && rpm -q hostname

# Environment variables
ENV \
    DEFAULT_ADMIN_USERNAME="eapadmin" 

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-launch/configure.sh" ]

# end os-eap-launch:1.0
# begin os-eap-node-name:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-node-name/configure.sh" ]

# end os-eap-node-name:1.0
# begin os-eap-migration:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-migration/configure.sh" ]

# end os-eap-migration:1.0
# begin os-eap7-launch:1.0

# Environment variables
ENV \
    JBOSS_MODULES_SYSTEM_PKGS="org.jboss.logmanager,jdk.nashorn.api" 

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap7-launch/configure.sh" ]

# end os-eap7-launch:1.0
# begin jboss.eap.cd.openshift.launch:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.cd.openshift.launch/configure.sh" ]

# end jboss.eap.cd.openshift.launch:1.0
# begin jboss-kie-db-drivers:1.0

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y mariadb-java-client postgresql-jdbc \
    && rpm -q mariadb-java-client postgresql-jdbc

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss-kie-db-drivers/configure.sh" ]

# end jboss-kie-db-drivers:1.0
# begin os-eap-datasource:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-datasource/configure.sh" ]

# end os-eap-datasource:1.0
# begin jboss.eap.cd.logging:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.cd.logging/configure.sh" ]

# end jboss.eap.cd.logging:1.0
# begin jboss.eap.config.mp-config:1.0

# Environment variables
ENV \
    MICROPROFILE_CONFIG_DIR_ORDINAL="500" 

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.config.mp-config/configure.sh" ]

# end jboss.eap.config.mp-config:1.0
# begin jboss.eap.config.jgroups:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.config.jgroups/configure.sh" ]

# end jboss.eap.config.jgroups:1.0
# begin jboss.eap.config.elytron:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.config.elytron/configure.sh" ]

# end jboss.eap.config.elytron:1.0
# begin jboss.eap.config.tracing:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.eap.config.tracing/configure.sh" ]

# end jboss.eap.config.tracing:1.0
# begin os-eap-sso:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-sso/configure.sh" ]

# end os-eap-sso:1.0
# begin os-eap70-sso:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap70-sso/configure.sh" ]

# end os-eap70-sso:1.0
# begin os-eap-hawkular:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-hawkular/configure.sh" ]

# end os-eap-hawkular:1.0
# begin os-eap-deployment-scanner:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-deployment-scanner/configure.sh" ]

# end os-eap-deployment-scanner:1.0
# begin os-eap-extensions:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/os-eap-extensions/configure.sh" ]

# end os-eap-extensions:1.0
# begin openshift-layer:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/openshift-layer/configure_layers.sh" ]

# end openshift-layer:1.0
# begin openshift-passwd:1.0

# end openshift-passwd:1.0
# begin os-logging:1.0

# end os-logging:1.0
# begin jboss.container.prometheus.api:1.0

# end jboss.container.prometheus.api:1.0
# begin jboss.container.prometheus.bash:1.0

# Environment variables
ENV \
    AB_PROMETHEUS_JMX_EXPORTER_CONFIG="/opt/jboss/container/prometheus/etc/jmx-exporter-config.yaml" \
    AB_PROMETHEUS_JMX_EXPORTER_PORT="9799" \
    JBOSS_CONTAINER_PROMETHEUS_MODULE="/opt/jboss/container/prometheus" 

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.prometheus.bash/configure.sh" ]

# end jboss.container.prometheus.bash:1.0
# begin jboss.container.eap.prometheus.agent:1.0

# Custom scripts
USER 185
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.eap.prometheus.agent/configure.sh" ]

# end jboss.container.eap.prometheus.agent:1.0
# begin jboss.container.eap.prometheus.config:7.2

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss.container.eap.prometheus.config/configure.sh" ]

# end jboss.container.eap.prometheus.config:7.2
# begin os-eap-txnrecovery.bash:1.0

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/os-eap-txnrecovery.bash/install_as_root.sh" ]

# end os-eap-txnrecovery.bash:1.0
# begin os-eap-txnrecovery.run:python3

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/os-eap-txnrecovery.run/install_as_root.sh" ]

# end os-eap-txnrecovery.run:python3
# begin os-eap-python:3.6

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y python36 \
    && rpm -q python36

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/os-eap-python/configure.sh" ]

# end os-eap-python:3.6
# begin jboss-kie-jdk-clean:11

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss-kie-jdk-clean/configure.sh" ]

# end jboss-kie-jdk-clean:11
# begin jboss-kie-common:1.0

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss-kie-common/configure.sh" ]

# end jboss-kie-common:1.0
# begin jboss-kie-wildfly-common:1.0

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss-kie-wildfly-common/configure.sh" ]

# end jboss-kie-wildfly-common:1.0
# begin jboss-kie-workbench:1.0

# Custom scripts
USER root
RUN [ "bash", "-x", "/tmp/scripts/jboss-kie-workbench/configure.sh" ]

# end jboss-kie-workbench:1.0
# begin rhpam-7/rhpam-businesscentral-rhel8:1.0

# Install required RPMs and ensure that the packages were installed
USER root
RUN yum --setopt=tsflags=nodocs install -y hostname git \
    && rpm -q hostname git

# Environment variables
ENV \
    HTTPS_ENABLE_HTTP2="true" \
    JBOSS_IMAGE_NAME="rhpam-7/rhpam-businesscentral-rhel8" \
    JBOSS_IMAGE_VERSION="1.0" 

# Labels
LABEL \
      com.redhat.component="rhpam-7-businesscentral-rhel8-container"  \
      description="Red Hat Business Central 7.5 OpenShift container image"  \
      io.cekit.version="3.2.0"  \
      io.k8s.description="Platform for running Red Hat Business Central"  \
      io.k8s.display-name="Red Hat Business Central 7.5"  \
      io.openshift.expose-services="8080:http,8443:https"  \
      io.openshift.tags="javaee,eap,eap7,rhpam,rhpam7"  \
      name="rhpam-7/rhpam-businesscentral-rhel8"  \
      summary="Red Hat Business Central 7.5 OpenShift container image"  \
      version="1.0" 

# Exposed ports
EXPOSE 8080 8443 8778
# end rhpam-7/rhpam-businesscentral-rhel8:1.0

USER root
RUN [ ! -d /tmp/scripts ] || rm -rf /tmp/scripts
RUN [ ! -d /tmp/artifacts ] || rm -rf /tmp/artifacts

# Clear package manager metadata
RUN yum clean all && [ ! -d /var/cache/yum ] || rm -rf /var/cache/yum



# Run user
USER 185

# Specify the working directory
WORKDIR /home/jboss

# Specify run cmd
CMD ["/opt/eap/bin/openshift-launch.sh"]
