# 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 amq-broker-7/amq-broker-78-openshift:7.8 image.


## START target image amq-broker-7/amq-broker-78-openshift:7.8
## \
    #FROM registry-proxy.engineering.redhat.com/rh-osbs/amq-broker-7-amq-broker-78-rhel8:7.8.1.CON.3
    FROM registry-proxy.engineering.redhat.com/rh-osbs/amq-broker-7-amq-broker-78-rhel8:7.8-8

    USER root

###### START module 'jboss.container.java.jvm.api:1.0'
###### \
###### /
###### END module 'jboss.container.java.jvm.api:1.0'

###### START module 'jboss.container.proxy.api:2.0'
###### \
###### /
###### END module 'jboss.container.proxy.api:2.0'

###### START module 'jboss.container.java.proxy.bash:2.0'
###### \
        # Copy 'jboss.container.java.proxy.bash' module content
        COPY modules/jboss.container.java.proxy.bash /tmp/scripts/jboss.container.java.proxy.bash
        # Set 'jboss.container.java.proxy.bash' module defined environment variables
        ENV \
            JBOSS_CONTAINER_JAVA_PROXY_MODULE="/opt/jboss/container/java/proxy" 
        # Custom scripts from 'jboss.container.java.proxy.bash' module
        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 module 'jboss.container.java.proxy.bash:2.0'

###### START module 'jboss.container.java.jvm.bash:1.0'
###### \
        # Copy 'jboss.container.java.jvm.bash' module content
        COPY modules/jboss.container.java.jvm.bash /tmp/scripts/jboss.container.java.jvm.bash
        # Set 'jboss.container.java.jvm.bash' module defined environment variables
        ENV \
            JBOSS_CONTAINER_JAVA_JVM_MODULE="/opt/jboss/container/java/jvm" 
        # Custom scripts from 'jboss.container.java.jvm.bash' module
        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 module 'jboss.container.java.jvm.bash:1.0'

###### START module 'dynamic-resources:1.0'
###### \
        # Copy 'dynamic-resources' module content
        COPY modules/dynamic-resources /tmp/scripts/dynamic-resources
        # Custom scripts from 'dynamic-resources' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/dynamic-resources/install.sh" ]
###### /
###### END module 'dynamic-resources:1.0'

###### START module 'jboss.container.s2i.core.api:1.0'
###### \
        # Set 'jboss.container.s2i.core.api' module defined environment variables
        ENV \
            S2I_SOURCE_DEPLOYMENTS_FILTER="*" 
        # Set 'jboss.container.s2i.core.api' module defined labels
        LABEL \
            io.openshift.s2i.destination="/tmp"  \
            io.openshift.s2i.scripts-url="image:///usr/local/s2i"  \
            org.jboss.container.deployments-dir="/deployments" 
###### /
###### END module 'jboss.container.s2i.core.api:1.0'

###### START module 'jboss.container.s2i.core.bash:1.0'
###### \
        # Copy 'jboss.container.s2i.core.bash' module content
        COPY modules/jboss.container.s2i.core.bash /tmp/scripts/jboss.container.s2i.core.bash
        # Set 'jboss.container.s2i.core.bash' module defined environment variables
        ENV \
            JBOSS_CONTAINER_S2I_CORE_MODULE="/opt/jboss/container/s2i/core/" 
        # Custom scripts from 'jboss.container.s2i.core.bash' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/jboss.container.s2i.core.bash/configure.sh" ]
###### /
###### END module 'jboss.container.s2i.core.bash:1.0'

###### START module 'jboss.container.util.logging.bash:1.0'
###### \
        # Copy 'jboss.container.util.logging.bash' module content
        COPY modules/jboss.container.util.logging.bash /tmp/scripts/jboss.container.util.logging.bash
        # Set 'jboss.container.util.logging.bash' module defined environment variables
        ENV \
            JBOSS_CONTAINER_UTIL_LOGGING_MODULE="/opt/jboss/container/util/logging/" 
        # Custom scripts from 'jboss.container.util.logging.bash' module
        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 module 'jboss.container.util.logging.bash:1.0'

###### START module 'jboss.container.amq.s2i.bash:1.0'
###### \
        # Copy 'jboss.container.amq.s2i.bash' module content
        COPY modules/jboss.container.amq.s2i.bash /tmp/scripts/jboss.container.amq.s2i.bash
        # Set 'jboss.container.amq.s2i.bash' module defined environment variables
        ENV \
            JBOSS_CONTAINER_AMQ_S2I_MODULE="/opt/jboss/container/amq/s2i" 
        # Custom scripts from 'jboss.container.amq.s2i.bash' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/jboss.container.amq.s2i.bash/configure.sh" ]
###### /
###### END module 'jboss.container.amq.s2i.bash:1.0'

###### START module 'os-amq-s2i:1.0'
###### \
###### /
###### END module 'os-amq-s2i:1.0'

###### START module 'os-java-run:1.0'
###### \
###### /
###### END module 'os-java-run:1.0'

###### START module 'jboss.container.user:1.0'
###### \
        # Copy 'jboss.container.user' module content
        COPY modules/jboss.container.user /tmp/scripts/jboss.container.user
        # Switch to 'root' user to install 'jboss.container.user' module defined packages
        USER root
        # Install packages defined in the 'jboss.container.user' module
        RUN yum --setopt=tsflags=nodocs install -y unzip tar rsync shadow-utils \
            && rpm -q unzip tar rsync shadow-utils
        # Set 'jboss.container.user' module defined environment variables
        ENV \
            HOME="/home/jboss" 
        # Custom scripts from 'jboss.container.user' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/jboss.container.user/configure.sh" ]
###### /
###### END module 'jboss.container.user:1.0'

###### START module 'openshift-passwd:1.0'
###### \
###### /
###### END module 'openshift-passwd:1.0'

###### START module 'os-logging:1.0'
###### \
###### /
###### END module 'os-logging:1.0'

###### START module 'os-amq-permissions:1.0'
###### \
        # Copy 'os-amq-permissions' module content
        COPY modules/os-amq-permissions /tmp/scripts/os-amq-permissions
        # Custom scripts from 'os-amq-permissions' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/os-amq-permissions/install.sh" ]
###### /
###### END module 'os-amq-permissions:1.0'

###### START module 'jboss.container.jolokia.api:1.0'
###### \
        # Set 'jboss.container.jolokia.api' module defined environment variables
        ENV \
            AB_JOLOKIA_AUTH_OPENSHIFT="true" \
            AB_JOLOKIA_HTTPS="true" \
            AB_JOLOKIA_PASSWORD_RANDOM="true" 
###### /
###### END module 'jboss.container.jolokia.api:1.0'

###### START module 'jboss.container.jolokia.bash:1.0'
###### \
        # Copy 'jboss.container.jolokia.bash' module general artifacts
        COPY \
            artifacts/jolokia-jvm-1.6.2.redhat-00002-agent.jar \
            /tmp/artifacts/
        # Copy 'jboss.container.jolokia.bash' module content
        COPY modules/jboss.container.jolokia.bash /tmp/scripts/jboss.container.jolokia.bash
        # Set 'jboss.container.jolokia.bash' module defined 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" 
        # Set 'jboss.container.jolokia.bash' module defined labels
        LABEL \
            io.fabric8.s2i.version.jolokia="1.6.2-redhat-00002" 
        # Exposed ports in 'jboss.container.jolokia.bash' module
        EXPOSE 8778
        # Custom scripts from 'jboss.container.jolokia.bash' module
        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 module 'jboss.container.jolokia.bash:1.0'

###### START module 'os-java-jolokia:1.0'
###### \
###### /
###### END module 'os-java-jolokia:1.0'

###### START module 'amq.broker78.jolokia.access:1.0'
###### \
        # Copy 'amq.broker78.jolokia.access' module content
        COPY modules/amq.broker78.jolokia.access /tmp/scripts/amq.broker78.jolokia.access
        # Custom scripts from 'amq.broker78.jolokia.access' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/amq.broker78.jolokia.access/install.sh" ]
###### /
###### END module 'amq.broker78.jolokia.access:1.0'

###### START module 'amq.broker78.launch:1.1'
###### \
        # Copy 'amq.broker78.launch' module general artifacts
        COPY \
            artifacts/openshift-ping-common-1.2.6.Final-redhat-1.jar \
            artifacts/openshift-ping-dns-1.2.6.Final-redhat-1.jar \
            artifacts/netty-tcnative-2.0.40.Final-redhat-00001-linux-x86_64-fedora.jar \
            /tmp/artifacts/
        # Copy 'amq.broker78.launch' module content
        COPY modules/amq.broker78.launch /tmp/scripts/amq.broker78.launch
        # Custom scripts from 'amq.broker78.launch' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/amq.broker78.launch/install.sh" ]
###### /
###### END module 'amq.broker78.launch:1.1'

###### START module 'amq.broker78.s2i:1.0'
###### \
        # Copy 'amq.broker78.s2i' module content
        COPY modules/amq.broker78.s2i /tmp/scripts/amq.broker78.s2i
        # Custom scripts from 'amq.broker78.s2i' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/amq.broker78.s2i/install.sh" ]
###### /
###### END module 'amq.broker78.s2i:1.0'

###### START module 'amq.custom.config:1.1'
###### \
        # Copy 'amq.custom.config' module content
        COPY modules/amq.custom.config /tmp/scripts/amq.custom.config
        # Custom scripts from 'amq.custom.config' module
        USER root
        RUN [ "bash", "-x", "/tmp/scripts/amq.custom.config/install.sh" ]
###### /
###### END module 'amq.custom.config:1.1'

###### START image 'amq-broker-7/amq-broker-78-openshift:7.8'
###### \
        # Switch to 'root' user to install 'amq-broker-7/amq-broker-78-openshift' image defined packages
        USER root
        # Install packages defined in the 'amq-broker-7/amq-broker-78-openshift' image
        RUN yum --setopt=tsflags=nodocs install -y apr \
            && rpm -q apr
        # Set 'amq-broker-7/amq-broker-78-openshift' image defined environment variables
        ENV \
            JBOSS_IMAGE_NAME="amq-broker-7/amq-broker-78-openshift-rhel8" \
            JBOSS_IMAGE_VERSION="7.8" 
        # Set 'amq-broker-7/amq-broker-78-openshift' image defined labels
        LABEL \
            com.redhat.component="amq-broker-rhel8-openshift-container"  \
            description="Red Hat AMQ Broker 7.8.3 OpenShift container image"  \
            io.cekit.version="3.5.0"  \
            io.k8s.description="A reliable messaging platform that supports standard messaging paradigms for a real-time enterprise."  \
            io.k8s.display-name="Red Hat AMQ Broker 7.8.3"  \
            io.openshift.s2i.scripts-url="image:///usr/local/s2i"  \
            io.openshift.tags="messaging,amq,java,jboss,xpaas"  \
            maintainer="rkieley@redhat.com"  \
            name="amq-broker-7/amq-broker-78-openshift-rhel8"  \
            summary="Red Hat AMQ Broker 7.8.3 OpenShift container image"  \
            version="7.8" 
        # Exposed ports in 'amq-broker-7/amq-broker-78-openshift' image
        EXPOSE 5671 5672 1883 8161 9876 61613 61612 61616 61617 7800 8888
###### /
###### END image 'amq-broker-7/amq-broker-78-openshift:7.8'


    # Switch to 'root' user and remove artifacts and modules
    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

    # Define the user
    USER 185
    # Define the working directory
    WORKDIR /home/jboss
    # Define run cmd
    CMD ["/opt/amq/bin/launch.sh", "start"]
## /
## END target image
