FROM python:3.13-slim EXPOSE 8000 WORKDIR /app ENV PATH="/app/.venv/bin:$PATH" ENV STATIC_ROOT=/app/staticfiles ENV MEDIA_ROOT=/app/mediafiles # Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv # Install Caddy COPY --from=docker.io/caddy:latest /usr/bin/caddy /usr/local/bin/caddy COPY docker/run.sh /usr/local/bin/runhub.sh COPY docker/Caddyfile /etc/caddy/Caddyfile ADD . /app RUN uv sync --frozen \ && uv pip install gunicorn --no-cache-dir \ && chmod a+x /usr/local/bin/runhub.sh \ && mkdir -p /app/run && chgrp -R 0 /app/run && chmod -R g=u /app/run \ && SECRET_KEY= python -m hub collectstatic --noinput CMD ["/usr/local/bin/runhub.sh"]