ARG GRAFANA_VERSION="7.2.0"

FROM grafana/grafana:${GRAFANA_VERSION}-ubuntu

ARG REVISION
ARG BUILDTIME
LABEL REVISION=${REVISION}
LABEL BUILDTIME=${BUILDTIME}

USER root

# Set DEBIAN_FRONTEND=noninteractive in environment at build-time
ARG DEBIAN_FRONTEND=noninteractive

ARG GF_INSTALL_IMAGE_RENDERER_PLUGIN="true"
ARG GF_PLUGINS_INSTALL_DIR="/var/lib/grafana.init/plugins"

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y curl sudo gnupg2

COPY debian.list /etc/apt/sources.list.d/debian.list
COPY chromium.pref /etc/apt/preferences.d/chromium.pref
COPY defaults.ini /usr/share/grafana/conf/defaults.ini
RUN chown grafana:grafana /usr/share/grafana/conf/defaults.ini

RUN if [ $GF_INSTALL_IMAGE_RENDERER_PLUGIN = "true" ]; then \
     apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517 \
     && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
     && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 \
     && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A \
     && apt-get update -y \
     && apt-get install -y chromium; \
    fi

RUN apt-get autoremove -y \
     && rm -rf /var/lib/apt/lists/* \
     && rm -rf /usr/share/grafana/tools/phantomjs;

RUN echo "grafana ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN mkdir -p /var/lib/grafana && chown -R grafana:grafana /var/lib/grafana
RUN mkdir -p /var/lib/grafana.init && chown -R grafana:grafana /var/lib/grafana.init
COPY ./custom_entrypoint.sh /custom_entrypoint.sh
USER grafana

RUN mkdir -p /var/lib/grafana.init/plugins 
RUN mkdir -p /var/lib/grafana.init/dashboards && ln -s /var/lib/grafana.init/dashboards /var/lib/grafana/dashboards
COPY dashboards/* /var/lib/grafana.init/dashboards/

RUN rm -rf /etc/grafana/provisioning/datasources/*
COPY provisioning/datasources/* /etc/grafana/provisioning/datasources/

RUN rm -rf /etc/grafana/provisioning/dashboards/*
COPY provisioning/dashboards/* /etc/grafana/provisioning/dashboards/

ENV GF_RENDERER_PLUGIN_CHROME_BIN="/usr/bin/chromium"

RUN if [ $GF_INSTALL_IMAGE_RENDERER_PLUGIN = "true" ]; then \
    grafana-cli \
        --pluginsDir "$GF_PLUGINS_INSTALL_DIR" \
        --pluginUrl https://github.com/grafana/grafana-image-renderer/releases/latest/download/plugin-linux-x64-glibc-no-chromium.zip \
        plugins install grafana-image-renderer; \
fi

ARG GF_INSTALL_PLUGINS=""

RUN if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then \
    OLDIFS=$IFS; \
        IFS=','; \
    for plugin in ${GF_INSTALL_PLUGINS}; do \
        IFS=$OLDIFS; \
        grafana-cli --pluginsDir "$GF_PLUGINS_INSTALL_DIR" plugins install ${plugin}; \
    done; \
fi
RUN rm -rf ${GF_PATHS_PLUGINS} && ln -s $GF_PLUGINS_INSTALL_DIR ${GF_PATHS_PLUGINS}

ENTRYPOINT ["/bin/sh", "/custom_entrypoint.sh"]
