FROM python:3.11-slim-bookworm

WORKDIR /app

RUN set -eux; \
    for i in 1 2 3 4 5; do \
      apt-get update -o Acquire::Retries=3 && \
      apt-get install -y --fix-missing -o Acquire::Retries=3 --no-install-recommends openssh-server nginx nano && \
      break || sleep 5; \
    done; \
    rm -rf /var/lib/apt/lists/*; \
    mkdir -p /var/run/sshd; \
    mkdir -p /etc/ssh/sshd_config.d

COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

COPY app.py /app/proxy/app.py
COPY templates /app/proxy/templates
COPY static /app/proxy/static
COPY files /app/proxy/files
COPY internal /app/proxy/internal
COPY nginx.conf /app/proxy/nginx.conf
COPY entrypoint.sh /usr/local/bin/entrypoint
COPY reload_nginx.sh /usr/local/bin/reload_nginx

RUN ln -sf /app/proxy/nginx.conf /etc/nginx/conf.d/default.conf \
    && ln -sf /app/proxy/files/public.txt /app/proxy/public.txt \
    && chmod +x /usr/local/bin/entrypoint /usr/local/bin/reload_nginx \
    && echo 'alias reload_nginx="/usr/local/bin/reload_nginx"' >/etc/profile.d/proxy_alias.sh

ENV PYTHONUNBUFFERED=1

CMD ["/usr/local/bin/entrypoint"]
