# Образ с двумя шардами ppcdata, для тестирования direct-like mysql скриптов (lm + mysql-monitor + mysql-grants и тд)
# Сборка: docker build registry.yandex.net/direct/lm-test/ppcdata-sh1_sh2:latest .

FROM ubuntu:trusty

# common ppc layer

ENV LSB_RELEASE=trusty
ENV DEBIAN_FRONTEND noninteractive

RUN printf "deb http://mirror.yandex.ru/ubuntu ${LSB_RELEASE} main restricted universe multiverse\ndeb http://mirror.yandex.ru/ubuntu ${LSB_RELEASE}-updates main restricted universe multiverse\ndeb http://mirror.yandex.ru/ubuntu ${LSB_RELEASE}-security main restricted universe multiverse\n#deb http://mirror.yandex.ru/ubuntu ${LSB_RELEASE}-backports main restricted universe multiverse\n" > /etc/apt/sources.list
RUN rm /etc/apt/sources.list.d/* /etc/apt/preferences.d/* >/dev/null 2>&1 || true

RUN apt-get update && apt-get install --yes --force-yes --no-install-recommends \
bind9-host \
curl \
debsums \
file \
gdb \
iotop \
iptables \
less \
lsof \
ltrace \
netcat-traditional \
netcat-openbsd \ 
pv \
rsync \
screen \
tcpdump \
telnet \
traceroute \
vim \
wget

# common repos
RUN curl -s http://dist.yandex.ru/REPO.asc | apt-key add -
RUN printf 'Package: apt\nPin: origin "*.dist.yandex.ru"\nPin-Priority: 900\n\nPackage: apt\nPin: origin "*mirror.yandex.ru"\nPin-Priority: 900\n\nPackage: *\nPin: origin "direct-*.dist.yandex.ru"\nPin-Priority: 590\n\nPackage: *\nPin: origin "*dist.yandex.ru"\nPin-Priority: 500\n\nPackage: *\nPin: origin "mirror.yandex.ru"\nPin-Priority: 500\n' > /etc/apt/preferences.d/90-all-projects
RUN printf "deb http://common.dist.yandex.ru/common/ stable/all/\ndeb http://common.dist.yandex.ru/common/ stable/amd64/\ndeb http://direct-common.dist.yandex.ru/direct-common/ stable/all/\ndeb http://direct-common.dist.yandex.ru/direct-common/ stable/amd64/\ndeb http://direct-${LSB_RELEASE}.dist.yandex.ru/direct-${LSB_RELEASE}/ stable/all/\ndeb http://direct-${LSB_RELEASE}.dist.yandex.ru/direct-${LSB_RELEASE}/ stable/amd64/\ndeb http://search-kernel.dist.yandex.ru/search-kernel stable/all/\ndeb http://search-kernel.dist.yandex.ru/search-kernel stable/amd64/\ndeb http://system.dist.yandex.ru/system/ ${LSB_RELEASE}/all/\ndeb http://system.dist.yandex.ru/system/ ${LSB_RELEASE}/amd64/\ndeb http://yandex-${LSB_RELEASE}.dist.yandex.ru/yandex-${LSB_RELEASE}/ stable/all/\ndeb http://yandex-${LSB_RELEASE}.dist.yandex.ru/yandex-${LSB_RELEASE}/ stable/amd64/\n" > /etc/apt/sources.list.d/common.list

RUN apt-get update && apt-get install --yes --force-yes --no-install-recommends \
jq \
strace=4.12-3ubuntu1unwind \
yandex-internal-root-ca

# monrun hacks
#RUN echo "127.0.1.1 $(hostname).fix.monrun $(hostname)" >> /etc/hosts
RUN apt-get install -y --force-yes monrun=1.2.57 || true
RUN perl -i -lpe 's/hostname\.strip\("\."\)\.lower\(\)/"local01z.host.monrun"/' /usr/lib/monrun/utils/gethostname.py
RUN apt-get -f install

## service packages
# curl -s http://c.yandex-team.ru/api/packages_on_host/gorynych01h.yandex.ru | grep -E 'gorynych|advq' | cut -f1,3 | tr '\t' '=' | sed 's/$/ \\/'
# root@gorynych01h:~# dpkg -l | grep '^ii' | grep -E 'gorynych|advq'  | awk '{ print $2"="$3" \\" }'
RUN apt-get install --yes --force-yes -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confmiss" \
bash-completion \
python-mysqldb \
percona-server-client-5.7 \
percona-server-common-5.7 \
percona-server-server-5.7 \
libperconaserverclient20 || true
RUN echo "exit 0" > /var/lib/dpkg/info/percona-server-server-5.7.postinst && apt-get -f install

RUN apt-get install --yes --force-yes -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confmiss" \
yandex-direct-mysql-ppcdata1 \
yandex-direct-mysql-ppcdata2

RUN locale-gen en_US.UTF-8; locale-gen ru_RU.UTF-8; echo 'LANG="en_US.UTF-8"' > /etc/default/locale

RUN mysqld --defaults-file=/etc/mysql/ppcdata1.cnf --initialize-insecure --user=mysql; mysqld --defaults-file=/etc/mysql/ppcdata2.cnf --initialize-insecure --user=mysql

RUN perl -i -lpe 's/^innodb_buffer_pool_size\b.*/innodb_buffer_pool_size = 16M/' /etc/mysql/*.cnf
RUN echo '#!/bin/bash\necho "local01z.host.monrun"\n' > /bin/hostname; chmod a+x /bin/hostname

CMD lm ppcdata1 server-start -f; lm ppcdata2 server-start -f; while true; do /usr/sbin/mysql-monitor >/dev/null 2>&1 || true; sleep 60; done
