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

ARG work_dir=/app
ARG user=www-data
ARG group=www-data
ARG log_path=/var/log/yandex-avia-api-gateway
ARG cache_path=/var/cache/yandex-avia-api-gateway
ARG socket_path=/var/run/yandex-avia-api-gateway
ARG socket_filename=avia-api-gateway.sock

WORKDIR ${work_dir}

# memcache
RUN apt-get update -qq && apt-get install -y -qq --force-yes memcached

# Permissions
RUN chown -R ${user}:${group} ${work_dir} \
    && install -d -o ${user} -g ${group} ${log_path} \
    && install -d -o ${user} -g ${group} ${log_path}/yt \
    && install -d -o ${user} -g ${group} ${cache_path}

# socket dir
RUN install -d -o ${user} -g ${group} ${socket_path}

# Install dependencies
COPY debian-requirements.txt /tmp/debian-requirements.txt
RUN apt-get update -qq \
    && cat /tmp/debian-requirements.txt | xargs apt-get install -y --force-yes -qq \
    && apt-get clean -qq \
    && rm /tmp/debian-requirements.txt

# nginx
ADD docker/nginx /etc/nginx

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

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

# push-client
COPY docker/statbox-push-client/files.yaml /etc/yandex/statbox-push-client/

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

# Copy project files
COPY app /app/app
COPY docker /app/docker/

# 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}
ENV TORNADO_USER ${user}
ENV TORNADO_GROUP ${group}
ENV AVIA_TORNADO_SOCKET ${socket_path}/${socket_filename}
ENV AVIA_API_GATEWAY_YT_REQUEST_LOG ${log_path}/yt/request-{pid}.log
ENV AVIA_API_GATEWAY_YT_RESPONSE_LOG ${log_path}/yt/response-{pid}.log

COPY docker/pre_start/ /bin/pre_start/
