FROM registry.yandex.net/tools/raw-ubuntu:20.04

RUN mkdir -p /var/log/yandex/domenator/
EXPOSE 80

RUN apt-get update \
    && apt-get install -y \
                        python3-pip \
                        postgresql-client \
                        libpq-dev \
                        wget \
                        yandex-push-client \
                        jq \
                        dnsutils \
                        unzip \
                        cron \
                        yandex-passport-tvmknife

RUN pip3 install pgcli

RUN mkdir -p ~/.postgresql && \
        wget "https://crls.yandex.net/allCAs.pem" -O ~/.postgresql/root.crt && \
        chmod 0600 ~/.postgresql/root.crt

RUN mkdir /var/spool/push-client && chown statbox /var/spool/push-client
RUN mkdir /domains_cache

ADD /docker/files/etc/yandex/statbox-push-client/push-client.yaml /etc/yandex/statbox-push-client/push-client.yaml

RUN groupadd syslog && usermod -aG syslog root
COPY hypercorn_conf.py /
COPY ./src /src
COPY ./migrations /migrations
COPY ./docker/files/etc/cron.d /etc/cron.d

COPY /domenator-main/src/asgi/domenator.asgi /domenator-main
COPY /domenator-main/migrations/domenator-db /domenator-db
COPY /domenator-main/src/arq/domenator.arq /arq

COPY /entrypoints/shell.sh /usr/local/bin/shell
COPY /entrypoints/dbshell.sh /usr/local/bin/dbshell
COPY /entrypoints/start.sh /usr/local/bin/start.sh
COPY /entrypoints/docker_entrypoint.sh /bin/docker_entrypoint.sh
COPY /docker/files/get_domain_cache.sh /usr/local/bin/get_domain_cache

RUN chmod +x /usr/local/bin/shell
RUN chmod +x /usr/local/bin/dbshell
RUN chmod +x /bin/docker_entrypoint.sh
RUN chmod +x /usr/local/bin/get_domain_cache
RUN chmod 0644 /etc/cron.d/get_domain_cache_cron && crontab /etc/cron.d/get_domain_cache_cron

# Для корректного запуска кронов.
RUN sed -i "/session    required     pam_loginuid.so/c\#session    required   pam_loginuid.so" /etc/pam.d/cron

ENTRYPOINT ["/bin/docker_entrypoint.sh"]

CMD /usr/local/bin/start.sh
