FROM postgres:11.13-buster

ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Moscow

RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
    sed -i '/ru_RU.UTF-8/s/^# //g' /etc/locale.gen

RUN apt update && \
    apt install -yq tzdata locales

RUN dpkg-reconfigure --frontend=noninteractive locales && \
    update-locale LANG=ru_RU.UTF-8

ENV LANG ru_RU.UTF-8
ENV LC_ALL ru_RU.UTF-8
ENV LANGUAGE ru_RU.UTF-8

RUN ln -fvs /usr/share/zoneinfo/Europe/Moscow /etc/localtime && \
    dpkg-reconfigure -f noninteractive tzdata

RUN apt dist-upgrade -y

RUN apt install -y \
        postgresql-plpython-11 \
        postgresql-plpython3-11 \
        postgresql-11-postgis-3 \
        postgresql-11-pgrouting \
        postgresql-server-dev-11 \
        vim \
        mc \
        git \
        python-setuptools \
        python3-setuptools \
        libpq-dev

RUN apt install -y \
        python3 \
        python3-pip

RUN pip3 install --upgrade pip && \
    pip3 install --upgrade setuptools && \
    pip3 install psycopg2-binary \
         patroni[zookeeper]

RUN mkdir -p /data/patroni && \
    chown -R 999:999 /data && \
    chmod 0700 /data/patroni

RUN git clone https://github.com/umitanuki/kmeans-postgresql.git /srv/kmeans

WORKDIR /srv/kmeans
RUN make && make install

WORKDIR /
RUN rm -rfv /srv/kmeans && \
    apt clean

COPY conf/entrypoint.sh /entrypoint.sh

USER postgres

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