FROM ubuntu:14.04.5

# Делаем отдельно потому что добавление нового репозитория ломает зависимости
RUN apt-get update && apt-get install -y libdbd-mysql-perl

# Для того чтобы работали dist.yandex.ru репозитории
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCD11186050CD1A

# Тут лежат пакеты
RUN echo deb http://direct-precise.dist.yandex.ru/direct-trusty/ stable/all/ >> /etc/apt/sources.list.d/direct-trusty.list
RUN echo deb http://yandex-precise.dist.yandex.ru/yandex-precise/ stable/amd64/ >> /etc/apt/sources.list.d/yandex-precise.list

RUN apt-get update && apt-get install -y \
    curl \
    gcc \
    rsyslog \
    haproxy=1.7.9-2 \
    make \
    jq=1.3-1.1ubuntu1.1 \
    mysql-client-core-5.6=5.6.33-0ubuntu0.14.04.1 \
    supervisor \
    yandex-solomon-agent-bin=1:18.0

RUN curl --silent https://raw.githubusercontent.com/miyagawa/cpanminus/1.7039/cpanm | perl - App::cpanminus
RUN cpanm Carton@v1.0.22

COPY cpanfile /app/
COPY cpanfile.snapshot /app/

RUN mkdir -p /var/run/page-id-generator

WORKDIR /app
RUN carton install --deployment

RUN mkdir -p /usr/share/partners/bin

RUN curl -k -o /etc/haproxy/haproxy.conf 'https://raw.github.yandex-team.ru/partner/partner2/master/configs/default/haproxy.conf' \
  && curl -k -o /etc/haproxy/haproxy-mysql-db-prod.conf 'https://raw.github.yandex-team.ru/partner/partner2/master/configs/production/haproxy-mysql-db.conf' \
  && curl -k -o /etc/haproxy/haproxy-mysql-db-test.conf 'https://raw.github.yandex-team.ru/partner/partner2/master/configs/test/haproxy-mysql-db.conf' \
  && curl -k -o /usr/share/partners/bin/haproxy_mysql_master_external_check.sh 'https://raw.github.yandex-team.ru/partner/partner2/master/bin/haproxy_mysql_master_external_check.sh' \
  && curl -k -o /usr/share/partners/bin/haproxy_mysql_master_external_check_test.sh 'https://raw.github.yandex-team.ru/partner/partner2/master/bin/haproxy_mysql_master_external_check_test.sh' \
  && curl -k -o /usr/share/partners/bin/haproxy_mysql_master_external_check_prod.sh 'https://raw.github.yandex-team.ru/partner/partner2/master/bin/haproxy_mysql_master_external_check_prod.sh'

RUN chmod 0644 /etc/haproxy/haproxy.conf \
  /etc/haproxy/haproxy-mysql-db-prod.conf \
  /etc/haproxy/haproxy-mysql-db-test.conf

RUN chmod 0755 /usr/share/partners/bin/haproxy_mysql_master_external_check.sh \
    /usr/share/partners/bin/haproxy_mysql_master_external_check_test.sh \
    /usr/share/partners/bin/haproxy_mysql_master_external_check_prod.sh

COPY etc/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY etc/nodejs.conf /etc/rsyslog.d/60-nodejs.conf
COPY etc/solomon/ /etc/solomon-agent

COPY bin/ /app/bin/
COPY lib/ /app/lib/
COPY app.psgi /app/

CMD /usr/bin/supervisord
