#FROM python:3.7.5-buster
FROM registry.yandex.net/rtc-base/bionic:stable
ARG MODE=release
ARG ENVIRONMENT=build

# Этот репозиторий нужен, чтобы установить libticket-parser-python
RUN echo "deb http://dist.yandex.ru/yandex-bionic stable/all/" >>  /etc/apt/sources.list.d/yandex.list
RUN echo "deb http://dist.yandex.ru/yandex-bionic stable/amd64/" >>  /etc/apt/sources.list.d/yandex.list
ADD http://dist.yandex.ru/yandexrepo/GPG-KEY-yandex /
RUN apt-key add GPG-KEY-yandex

# Для того, чтобы на трасти поставить свежий клиент постгреса
# ибо в стандартном дистрибутиве только 9.5.3
COPY docker/postgresql_apt_key /
RUN cat postgresql_apt_key | apt-key add -
#RUN sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
RUN apt-get update && \
    apt-get install -y --force-yes \
                    python3.7 \
                    python3-pip \
                    postgresql-client-10 \
                    postgresql-server-dev-10 \
                    telnet \
                    dnsutils \
                    vim \
                    strace \
                    gdb \
                    net-tools \
                    tcpdump \
                    htop \
                    locales \
                    less \
                    ngrep \
                    logrotate \
                    yandex-push-client \
                    gettext=0.19.8.1-6ubuntu0.3 \
                    nginx=1.14.2-1.yandex.79

RUN echo "/usr/lib/python2.7/dist-packages/" > /usr/local/lib/python2.7/site-packages/dist-packages.pth
# Для корректного запуска кронов.
RUN sed -i "/session    required     pam_loginuid.so/c\#session    required   pam_loginuid.so" /etc/pam.d/cron
RUN mv /etc/nginx/nginx-default.conf /etc/nginx/nginx.conf
RUN sed -i 's/worker_processes auto;/worker_processes 4;/g' /etc/nginx/nginx.conf

RUN echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen

ADD docker/files/ /
RUN chmod 0644 /etc/logrotate.conf
RUN chmod 0644 /etc/logrotate.d/*
RUN ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
RUN mv /etc/cron.daily/logrotate /etc/cron.hourly/logrotate
ARG WWW_DIR=/var/www/yandex/yandex-directory

USER root

RUN mkdir -p /var/log/yandex-directory/
RUN mkdir -p /var/log/yandex/directory/
RUN mkdir -p /etc/yandex/
EXPOSE 80

ENV PGPASSFILE /etc/yandex/.pgpass

COPY docker/docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# Добавим полезные алиасы
COPY docker/.bashrc / /root/
COPY docker/.bash_profile / /root/

# Полезные утилиты для работы в консоли
RUN apt-get install -y --force-yes \
            tmux \
            yandex-passport-tvmknife
RUN pip3 install psycopg2-binary
RUN pip3 install yandex-pgmigrate setproctitle==1.2.2 pgcli

# эти операции должны быть ближе к концу файла, чтобы эффективно работало кэширование
ARG APP_DIR=/root/app/
RUN mkdir -p $APP_DIR
ADD docker $APP_DIR
COPY rst-docs $APP_DIR/rst-docs

ADD src/ $APP_DIR
ADD app.uwsgi $APP_DIR
ADD /yandex-directory-main/src/wsgi/yandex_directory.app $APP_DIR/yandex-directory-main
ADD app-mule.uwsgi $APP_DIR
ADD ssl $APP_DIR/ssl

# Документация по API
COPY rst-docs/build $WWW_DIR/
COPY docs/jquery*.js docs/index-with-spec*.js docs/versions.js docs/index.css $WWW_DIR/static/
COPY docs/swagger/ $WWW_DIR/static/swagger/
# шаблоны
COPY templates $WWW_DIR/templates

COPY docs $APP_DIR/docs
ENV PATH_DOCS $APP_DIR/docs
ENV WWW_PATH $WWW_DIR
ENV APP_PATH $APP_DIR

WORKDIR $APP_DIR

CMD ["docker-entrypoint.sh"]
