diff --git a/7.6.0/Dockerfile b/7.6.0/Dockerfile index 211b73960ef59bc20106b700b0451513fb215e5c..eb0ebb4bd3dae51a6ffeb5529df249613d9dfbf5 100644 --- a/7.6.0/Dockerfile +++ b/7.6.0/Dockerfile @@ -9,14 +9,22 @@ ARG BASE_TAG=8.1 FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} AS prep_files ARG NEXUS_SCHEME=https -ARG NEXUS_SERVER=${NEXUS_SERVER} +ARG NEXUS_USERNAME +ARG NEXUS_PASSWORD +ARG NEXUS_SERVER=nexus-secure.levelup-dev.io +ARG PACKAGE_NAME=kibana-7.6.0-linux-x86_64.tar.gz +ARG NEXUS_BASE=${NEXUS_SCHEME}://${NEXUS_SERVER}/repository/dsop/elastic/ + +ADD build-scripts/ /build-scripts/ + +RUN /build-scripts/prepare.sh $NEXUS_BASE/$PACKAGE_NAME $PACKAGE_NAME +RUN /build-scripts/prepare.sh $NEXUS_BASE/dumb-init dumb-init RUN yum -y --nogpgcheck --disableplugin=subscription-manager update && yum install -y --nogpgcheck --disableplugin=subscription-manager tar gzip && yum clean all -RUN cd /opt && curl --retry 8 -s -L -O -k -f ${NEXUS_SCHEME}://${NEXUS_SERVER}/repository/dsop/elastic/kibana/7.6.0/kibana-7.6.0-linux-x86_64.tar.gz && cd - RUN mkdir /usr/share/kibana WORKDIR /usr/share/kibana -RUN tar --strip-components=1 -zxf /opt/kibana-7.6.0-linux-x86_64.tar.gz +RUN tar zxf /opt/${PACKAGE_NAME} --strip-components=1 # Ensure that group permissions are the same as user permissions. # This will help when relying on GID-0 to run Kibana, rather than UID-1000. # OpenShift does this, for example. @@ -31,15 +39,14 @@ RUN find /usr/share/kibana -type d -exec chmod g+s {} \; FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} EXPOSE 5601 -# Add an init process -ARG NEXUS_SCHEME=https -ARG NEXUS_SERVER=${NEXUS_SERVER} -RUN curl -s --create-dirs -k -fL ${NEXUS_SCHEME}://${NEXUS_SERVER}/repository/dsop/elastic/kibana/7.6.0/dumb-init -o /usr/local/bin/dumb-init -RUN chmod +x /usr/local/bin/dumb-init - # Add Reporting dependencies. RUN yum -y --nogpgcheck --disableplugin=subscription-manager update && yum install -y --nogpgcheck --disableplugin=subscription-manager fontconfig freetype shadow-utils && yum clean all +# Add a dumb init process +COPY --from=prep_files /opt/dumb-init /usr/local/bin/dumb-init +RUN chmod +x /usr/local/bin/dumb-init + + # Bring in Kibana from the initial stage. COPY --from=prep_files --chown=1000:0 /usr/share/kibana /usr/share/kibana WORKDIR /usr/share/kibana diff --git a/7.6.0/build-scripts/prepare.sh b/7.6.0/build-scripts/prepare.sh new file mode 100755 index 0000000000000000000000000000000000000000..aeea338261a60382a1f8a5e9858110d509422ec6 --- /dev/null +++ b/7.6.0/build-scripts/prepare.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -euo pipefail + +PACKAGE_URL=$1 +PACKAGE_NAME=$2 +WORKSPACE=${WORKSPACE:-/prepare} + +# Download dependencies +curl -fLku ${NEXUS_USERNAME}:${NEXUS_PASSWORD} --create-dirs ${PACKAGE_URL} -o ${WORKSPACE}/${PACKAGE_NAME} + +cp ${WORKSPACE}/${PACKAGE_NAME} /opt/${PACKAGE_NAME} + diff --git a/7.6.0/scripts/prebuild.sh b/7.6.0/scripts/prebuild.sh index 9d3bfa1fcdd5c0e54bc6674142228198106b3985..222ae0478642a8ddc8ec3c41a8a479d2c70a7e86 100755 --- a/7.6.0/scripts/prebuild.sh +++ b/7.6.0/scripts/prebuild.sh @@ -7,14 +7,11 @@ ELASTIC_VERSION=7.6.0 ELASTIC_GPG_KEY_FINGERPRINT=46095ACC8548582C1A2699A9D27D666CD88E42B4 PACKAGE_NAME=${ELASTIC_PRODUCT}-${ELASTIC_VERSION}-linux-x86_64.tar.gz +VENDOR=elastic +CONTAINER=kibana # These three variables are required to push whatever outside binaries your container needs at build time to our Nexus repo NEXUS_SCHEME=${NEXUS_SCHEME:-https} -NEXUS_SERVER="${NEXUS_SERVER}/repository/dsop" -NEXUS_USERNAME="${NEXUS_USERNAME}" -NEXUS_PASSWORD="${NEXUS_PASSWORD}" - -NEXUS_SERVER_URL="${NEXUS_SCHEME}://${NEXUS_SERVER}/elastic/${ELASTIC_PRODUCT}/${ELASTIC_VERSION}" - +NEXUS_REPO=${NEXUS_SCHEME}://${NEXUS_SERVER}/repository/dsop/${VENDOR}/ ################################################################################# ### Set & create paths ### @@ -30,7 +27,7 @@ curl -sL https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1. echo "37f2c1f0372a45554f1b89924fbb134fc24c3756efaedf11e07f599494e0eff9 dumb-init" | sha256sum -c - echo "Downloading ${ELASTIC_PRODUCT}/${PACKAGE_NAME}" -curl -sO https://artifacts.elastic.co/downloads/${ELASTIC_PRODUCT}/${PACKAGE_NAME} +curl -O https://artifacts.elastic.co/downloads/${ELASTIC_PRODUCT}/${PACKAGE_NAME} curl -sO https://artifacts.elastic.co/downloads/${ELASTIC_PRODUCT}/${PACKAGE_NAME}.asc curl -sO https://artifacts.elastic.co/downloads/${ELASTIC_PRODUCT}/${PACKAGE_NAME}.sha512 sha512sum --check "${PACKAGE_NAME}.sha512" @@ -39,34 +36,23 @@ echo "Downloads Successful" ### GPG Signature Check ### -#curl -sO https://artifacts.elastic.co/GPG-KEY-elasticsearch -# -## verify the key has the expected fingerprint -#gpg -n --keyid-format long --list-options show-keyring GPG-KEY-elasticsearch | grep "$ELASTIC_GPG_KEY_FINGERPRINT" -# -#gpg --import GPG-KEY-elasticsearch -# -#gpg --verify "${PACKAGE_NAME}.asc" "$PACKAGE_NAME" +curl -sO https://artifacts.elastic.co/GPG-KEY-elasticsearch + +gpg --import GPG-KEY-elasticsearch -#if [ $? -eq 0 ] -#then -# echo "The key has the expected fingerprint." -#else -# echo "There is a Problem with signature." -#fi +gpg --verify "${PACKAGE_NAME}.asc" "$PACKAGE_NAME" + +if [ $? -eq 0 ] +then + echo "The key has the expected fingerprint." +else + echo "There is a Problem with signature." +fi ### Nexus Repo Upload ### -for package in ${PACKAGE_NAME} ${PACKAGE_NAME}.asc ${PACKAGE_NAME}.sha512 dumb-init +for package in ${PACKAGE_NAME} dumb-init do - curl -k -fu ${NEXUS_USERNAME}:${NEXUS_PASSWORD} -T ${package} ${NEXUS_SERVER_URL}/${package} - echo "${package} uploaded" + curl -k -fu ${NEXUS_USERNAME}:${NEXUS_PASSWORD} -T ${package} ${NEXUS_REPO}/${package} + echo "${package} uploaded" done -### Cleanup ### -cd ${START_DIR} - -if [[ $NOCLEAN ]]; then - echo "Staging folder not deleted : ${STAGING_DIR}" -else - rm -rf ${STAGING_DIR} -fi