# BIONIC
FROM registry.yandex.net/partners/perl-backend-base-bionic:1.40

RUN echo deb http://dist.yandex.ru/search-bionic/ stable/amd64/   >> /etc/apt/sources.list.d/search-bionic.list
RUN echo deb http://dist.yandex.ru/search-bionic/ stable/all/     >> /etc/apt/sources.list.d/search-bionic.list
RUN echo deb http://dist.yandex.ru/search-bionic/ unstable/amd64/ >> /etc/apt/sources.list.d/search-bionic.list
RUN echo deb http://dist.yandex.ru/search-bionic/ unstable/all/   >> /etc/apt/sources.list.d/search-bionic.list

RUN echo deb http://dist.yandex.ru/search-upstream-bionic/ stable/amd64/   >> /etc/apt/sources.list.d/search-upstream-bionic.list
RUN echo deb http://dist.yandex.ru/search-upstream-bionic/ stable/all/     >> /etc/apt/sources.list.d/search-upstream-bionic.list
RUN echo deb http://dist.yandex.ru/search-upstream-bionic/ unstable/amd64/ >> /etc/apt/sources.list.d/search-upstream-bionic.list
RUN echo deb http://dist.yandex.ru/search-upstream-bionic/ unstable/all/   >> /etc/apt/sources.list.d/search-upstream-bionic.list

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E1DD270288B4E6030699E45FA1715D88E1DF1F24
RUN echo deb http://ppa.launchpad.net/git-core/ppa/ubuntu bionic main >> /etc/apt/sources.list.d/git.core.list
RUN echo deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu bionic main >> /etc/apt/sources.list.d/git.core.list

# Clickhouse
# https://clickhouse.com/docs/ru/getting-started/install/#install-from-deb-packages
RUN apt-get install -y apt-transport-https ca-certificates dirmngr
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4
RUN echo "deb https://repo.clickhouse.tech/deb/stable/ main/" >> /etc/apt/sources.list.d/clickhouse.list

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCD11186050CD1A

RUN apt-get update && apt-get install -y \
    clickhouse-client=19.4.4.33 \
    clickhouse-server-base=19.4.4.33 \
    clickhouse-server-common=19.4.4.33 \
    jq \
    libtest-mocktime-perl \
    libtest-perltidy-perl \
    libyandex-tanker-perl=3.0.0-1 \
    mysql-client-core-5.7 \
    perltidy \
    sudo \
    supervisor \
    teamcity-agent \
    tzdata \
    unzip \
    wget \
    yandex-environment-testing \
    yandex-openjdk17=17.0.3-tzdata2021e \
    yandex-porto=5.0.4 \
    yandex-archive-keyring \
    python \
    yandex-arc-launcher

# Настройка CH
RUN mkdir /var/lib/clickhouse/preprocessed_configs
RUN touch /var/log/clickhouse-server/clickhouse-server.log /var/lib/clickhouse/preprocessed_configs/config.xml /var/log/clickhouse-server/clickhouse-server.err.log
RUN chown clickhouse /var/log/clickhouse-server/clickhouse-server.log /var/lib/clickhouse/preprocessed_configs/config.xml /var/log/clickhouse-server/clickhouse-server.err.log

# RUN export MYSQL_ROOT_PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1);
RUN export MYSQL_ROOT_PASSWORD=
RUN DEBIAN_FRONTEND=noninteractive
RUN echo "percona-server-server-5.7 percona-server-server-5.7/root-pass password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
RUN echo "percona-server-server-5.7 percona-server-server-5.7/re-root-pass password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
RUN apt-get install -qq -y percona-server-server-5.7 percona-server-client-5.7

WORKDIR /app

# supervisor
ADD configs/func-tests/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

ADD configs/func-tests/func-test.cnf /etc/mysql/conf.d/func-test.cnf

RUN mkdir -p /tmpfs/mysql
RUN chown mysql /tmpfs/mysql
RUN sed -i 's/sql_mode=.*/sql_mode=""/' /etc/mysql/percona-server.conf.d/mysqld.cnf
RUN sed -i 's|datadir\s*=.*|datadir=/tmpfs/mysql|' /etc/mysql/percona-server.conf.d/mysqld.cnf
RUN mysqld --initialize-insecure --user=mysql --datadir=/tmpfs/mysql
VOLUME /tmpfs

ADD t_lib/partner2-test /usr/bin/partner2-test
RUN chmod 0777 /usr/bin/partner2-test

ADD bin/start_mysql_for_func_tests.sh /app/bin/start_mysql_for_func_tests.sh
RUN chmod 0755 /app/bin/start_mysql_for_func_tests.sh

ADD configs/func-tests/clear_mocked_databases.crontab /etc/cron.d/clear_mocked_databases
RUN chmod 0644 /etc/cron.d/clear_mocked_databases

ADD configs/default/bionic/haproxy.conf /etc/haproxy/haproxy.conf
ADD configs/test/haproxy-ch-db.conf /etc/haproxy/haproxy-ch-db-test.conf
ADD configs/test/haproxy-mysql-db.conf /etc/haproxy/haproxy-mysql-db-test.conf

ADD configs/func-tests/teamcity /etc/sudoers.d/teamcity
RUN chmod 0440 /etc/sudoers.d/teamcity

ADD configs/func-tests/yandex-cauth-ssh-agent /etc/sudoers.d/yandex-cauth-ssh-agent
RUN chmod 0440 /etc/sudoers.d/yandex-cauth-ssh-agent

ADD bin/deploy/teamcity_agent_update_props.sh /app/bin/teamcity_agent_update_props.sh
RUN chmod 0755 /app/bin/teamcity_agent_update_props.sh

ADD bin/deploy/teamcity_agent_entrypoint.sh /app/bin/teamcity_agent_entrypoint.sh
RUN chmod 0755 /app/bin/teamcity_agent_entrypoint.sh

ADD bin/deploy/teamcity_java_checkout.sh /app/bin/teamcity_java_checkout.sh
RUN chmod 0755 /app/bin/teamcity_java_checkout.sh

ADD bin/haproxy_mysql_master_external_check.sh /usr/share/partners/bin/haproxy_mysql_master_external_check.sh
ADD bin/haproxy_mysql_master_external_check_test.sh /usr/share/partners/bin/haproxy_mysql_master_external_check_test.sh
ADD bin/haproxy_mysql_master_external_check_init.sh /usr/share/partners/bin/haproxy_mysql_master_external_check_init.sh
ADD configs/func-tests/bin/ /usr/share/partners/bin/
RUN chmod 0755 /usr/share/partners/bin/*.sh

RUN mkdir /java && chown teamcity -R /java

ADD --chown=teamcity configs/func-tests/ya.conf /home/teamcity/.ya/ya.conf

ENV PERL5LIB "$PERL5LIB:/usr/share/perl5/"

ENTRYPOINT ["/app/bin/teamcity_agent_entrypoint.sh"]
