ARG BASE_VERSION
FROM registry.gitlab.com/rychly-edu/docker/docker-hadoop-hbase-base:${BASE_VERSION:-latest}

MAINTAINER Marek Rychly <marek.rychly@gmail.com>

# https://github.com/Merck/Halyard/releases
ARG HALYARD_VERSION=3.0

ARG DOWNLOAD_CACHE

ENV \
HALYARD_HOME="/opt/halyard" \
HALYARD_USER="halyard"

COPY scripts /

RUN true \
# make the scripts executable
&& chmod 755 /*.sh \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get -y install unzip \
\
# download the package
&& ( [ -n "${DOWNLOAD_CACHE}" ] && cp -v "${DOWNLOAD_CACHE}/halyard-sdk-${HALYARD_VERSION}.zip" /tmp \
	|| curl -LfsSo "/tmp/halyard-sdk-${HALYARD_VERSION}.zip" "https://github.com/Merck/Halyard/releases/download/r${HALYARD_VERSION}/halyard-sdk-${HALYARD_VERSION}.zip" ) \
\
# extract the package and remove garbage
&& mkdir -p "${HALYARD_HOME}" \
&& unzip -q "/tmp/halyard-sdk-${HALYARD_VERSION}.zip" -d "${HALYARD_HOME}" \
\
# patch: sh->bash, static paths, file permissions
&& sed -i \
-e "s|^#!/bin/sh\$|#!/usr/bin/env bash|g" \
-e "s|/etc/hbase/conf|${HBASE_CONF_DIR}|g" \
-e "s|^lib=.*\$|lib=${HALYARD_HOME}/lib|g" \
-e "s|^halyard_home=.*\$|halyard_home=${HALYARD_HOME}|g" \
"${HALYARD_HOME}/console" "${HALYARD_HOME}/halyard" \
&& chmod 644 ${HALYARD_HOME}/*.xml \
\
# set up Halyard permissions
&& addgroup --system "${HALYARD_USER}" \
&& adduser --system --home "${HALYARD_HOME}" --gecos "Halyard" --shell /bin/bash --ingroup "${HALYARD_USER}" --disabled-login --no-create-home "${HALYARD_USER}" \
&& chown -R "${HALYARD_USER}:${HALYARD_USER}" "${HALYARD_HOME}" \
\
# set Halyard path for the login shell
&& echo '#!/bin/sh' > /etc/profile.d/path-halyard.sh \
&& echo "export PATH=\"\${PATH}:${JAVA_HOME}/bin:${HALYARD_HOME}\"" >> /etc/profile.d/path-halyard.sh \
&& chmod 755 /etc/profile.d/path-halyard.sh \
\
# clean up
&& apt-get -y autoremove unzip \
&& apt-get clean \
&& rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/*

ENTRYPOINT ["/entrypoint.sh"]
