2025-01-30 15:12:50 +01:00
|
|
|
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
|
|
|
|
|
2025-01-30 17:43:15 +01:00
|
|
|
# Install binaries with correct permissions
|
|
|
|
COPY --from=ghcr.io/astral-sh/uv:latest --chown=root:root --chmod=755 /uv /usr/local/bin/uv
|
|
|
|
COPY --from=caddy:latest --chown=root:root --chmod=755 /usr/bin/caddy /usr/local/bin/caddy
|
|
|
|
COPY --chmod=755 docker/run.sh /usr/local/bin/runhub.sh
|
2025-01-30 15:12:50 +01:00
|
|
|
|
|
|
|
|
2025-01-30 17:15:36 +01:00
|
|
|
COPY docker/Caddyfile /app/config/caddy/Caddyfile
|
2025-01-30 15:12:50 +01:00
|
|
|
ADD . /app
|
|
|
|
|
2025-01-30 16:57:32 +01:00
|
|
|
RUN uv sync --frozen \
|
|
|
|
&& uv pip install gunicorn --no-cache-dir \
|
2025-01-30 17:43:15 +01:00
|
|
|
&& mkdir -p /app/config/caddy /app/run/caddy /app/run/gunicorn \
|
|
|
|
&& chgrp -R 0 /app \
|
|
|
|
&& chmod -R g=u /app \
|
|
|
|
&& chmod g+w /app/config/caddy/Caddyfile \
|
2025-01-30 15:12:50 +01:00
|
|
|
&& SECRET_KEY= python -m hub collectstatic --noinput
|
|
|
|
|
2025-01-30 17:43:15 +01:00
|
|
|
CMD ["/usr/local/bin/runhub.sh"]
|