FROM ubuntu:18.04

# /etc/localtime has to be removed due to a bug
# https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1554806

RUN export DEBIAN_FRONTEND=noninteractive \
    && apt-get update -qq \
    && apt-get install -y -qq --no-upgrade --no-install-recommends locales localepurge tzdata gnupg \
    && echo "Europe/Moscow" > /etc/timezone \
    && rm /etc/localtime \
    && dpkg-reconfigure -f noninteractive tzdata \
    && locale-gen --purge en_US.UTF-8 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && echo "MANDELETE\nDONTBOTHERNEWLOCALE\nSHOWFREEDSPACE\nVERBOSE\nen_US\nen_US.UTF-8" > /etc/locale.nopurge \
    && localepurge

ENV DEBIAN_FRONTEND=noninteractive \
    LANG='en_US.UTF-8' \
    LANGUAGE='en_US:en' \
    LC_ALL='en_US.UTF-8' \
    PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=true \
    PIP_INDEX_URL=https://pypi.yandex-team.ru/simple/

# ------------------------------------------------------------------------------

ADD https://crls.yandex.net/allCAs.pem ./allCAs.pem
RUN mkdir -p /etc/yandex/tools-datasources/ \
    && sed -i "s/archive.ubuntu.com/mirror.yandex.ru/g" /etc/apt/sources.list \
    && apt-get update -qq \
    && DEPS='python3-pip python3-venv ca-certificates wget unzip libaio1 postgresql-client-10' \
    && apt-get install -y -qq --no-upgrade --no-install-recommends $DEPS \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

ENV NLS_LANG=Russian_Russia.UTF8 \
    PATH="/opt/oracle:${PATH}" \
    LD_LIBRARY_PATH="/opt/oracle:${LD_LIBRARY_PATH}"

RUN set -ex \
    && mkdir -p /opt/oracle \
    && wget -q -O /tmp/client.zip "http://s3.mds.yandex.net/procu/oebs/instantclient-basiclite-linux.x64-12.2.0.1.0.zip" \
    && unzip -j /tmp/client.zip 'instantclient_12_2/*' -d /opt/oracle \
    && rm /tmp/client.zip \
    && ln -s /opt/oracle/libclntshcore.so.12.1 /opt/oracle/libclntshcore.so \
    && ln -s /opt/oracle/libclntsh.so.12.1 /opt/oracle/libclntsh.so \
    && ln -s /opt/oracle/libocci.so.12.1 /opt/oracle/libocci.so \
    && ldconfig

RUN python3 -m venv /py3 \
    && /py3/bin/pip install --no-cache-dir setuptools==39.2.0 wheel==0.31.1 \
    && /py3/bin/pip install --no-cache-dir \
        ipython \
        cx_Oracle \
        psycopg2==2.7.3.2 \
        datasources-config-wrapper==0.6 \
        yenv==0.8 \
        schedule==0.5.0 \
    && echo "source /py3/bin/activate" >> /root/.bashrc \
    && mkdir /oebs

WORKDIR /oebs

COPY entrypoint.sh setup.py ./
COPY oebs/ ./oebs

RUN /py3/bin/pip3 install -e .

ENTRYPOINT ["/oebs/entrypoint.sh"]
