FROM registry.yandex.net/ubuntu:xenial
LABEL maintainer="Kirill Merkushev (lanwen)"

RUN echo "deb http://dist.yandex.ru/mail-xenial stable/amd64/" >> /etc/apt/sources.list.d/mail.list \
    && echo "deb http://dist.yandex.ru/mail-xenial unstable/amd64/" >> /etc/apt/sources.list.d/mail.list

RUN apt-get update && apt-get install -y --no-install-recommends \
		python2.7   \
		git         \
		python-pip  \
		libpq-dev   \
		python-dev  \
		build-essential \
		# https://github.yandex-team.ru/sendr/utvm/blob/master/README.md
		libticket-parser libticket-parser-dev libticket-parser2 libticket-parser2-dev \
		cron \
		logrotate \
		# windat requirement
		tnef-parser=201812021705 \
		redis-server \
		openssh-client \
	&& rm -rf /var/lib/apt/lists/*  \
	&& pip install --no-cache-dir --upgrade "pip<10" "setuptools<45"

# https://stackoverflow.com/questions/21926465/issues-running-cron-in-docker-on-different-hosts/44201290
# in qloud
# pam_loginuid(cron:session): set_loginuid failed
# pam_loginuid(cron:session): Error writing /proc/self/loginuid: Operation not permitted
RUN sed -i 's/session.*required.*pam_loginuid.so/#session    required   pam_loginuid.so/g' /etc/pam.d/cron

WORKDIR /code/logbroker-client/

ENV PYTHONPATH=/code/logbroker-client/

COPY requirements ./requirements
RUN pip install -U wheel setuptools\<45
RUN pip install --disable-pip-version-check --no-cache-dir -r requirements/base.txt \
        && rm -rf *.egg-info/                                   \
        && rm -rf .tox*/                                        \
        && mkdir -p /var/log/logbroker-client/                  \
        && mkdir -p /var/log/supervisor/

ENV TZ Europe/Moscow

COPY configs /etc/yandex/logbroker-client/
COPY docker/etc /etc/
COPY docker/bin /bin/
RUN chmod 644 /etc/logrotate.conf
RUN chmod 644 /etc/logrotate.d/*

COPY . .

EXPOSE 8000

CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
