FROM registry.yandex.net/avia/ubuntu-bionic-deploy:22b21855d62a4f7ff9fca4d5994f65d326015bb6

ARG work_dir=/app
ARG log_path=/var/log/yandex-avia-backend
ARG cache_path=/var/cache/yandex-avia-backend

WORKDIR ${work_dir}

# Directories
RUN install -d ${log_path} \
    && install -d ${cache_path}

# nginx
ADD docker/nginx /etc/nginx

# supervisor
ADD docker/supervisor /etc/supervisor/conf.d/
ADD docker/mcrouter/supervisor /etc/supervisor/conf.d/

# cron
ADD docker/cron /etc/cron.d/

# logrotate
ADD docker/logrotate /etc/logrotate.d/

# push-client
ADD docker/statbox-push-client /etc/yandex/statbox-push-client

# Smailik
RUN install -d /var/spool/smailik-preparer/avia-backend/

# mcrouter
RUN mkdir -p /var/spool/mcrouter \
    && mkdir -p /var/log/mcrouter \
    && mkdir /etc/mcrouter
ADD docker/mcrouter/mcrouter /etc/mcrouter
COPY docker/mcrouter/bin/mcrouter_config.py /app/
COPY mcrouter /usr/bin/mcrouter
COPY docker/mcrouter/debian_requirements.txt /tmp/mcrouter_debian_requirements.txt
RUN apt-get update -qq \
    && cat /tmp/mcrouter_debian_requirements.txt | xargs apt-get install -y -qq --force-yes \
    && apt-get clean -qq

# yt_lock
COPY yt_lock /usr/bin/yt_lock

# Solomon
COPY docker/solomon/ /etc/solomon/

# pre start
COPY docker/pre_start/ /bin/pre_start/

# Copy project files
COPY app /app/app
COPY docker/bin/app.sh /app/app.sh
RUN chmod +x /app/app.sh

# Make port 80 available to the world outside this container
EXPOSE 80

# Environment variables
ENV LANG ru_RU.UTF-8
ENV APP_DIR ${work_dir}
ENV PYTHONPATH ${work_dir}
# fixing it here as the address is used in nginx config files
ENV AVIA_BACKEND_BIND_ADDRESS=unix:/var/run/avia-backend.sock
