| FROM docker.io/matrixconduit/matrix-conduit:latest AS conduit | |
| FROM python:3.11-slim | |
| # Install system deps | |
| RUN apt-get update && \ | |
| apt-get install -y nginx supervisor curl && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Copy the entire conduit nix store from official image and symlink the binary | |
| COPY --from=conduit /nix /nix | |
| RUN find /nix -name "conduit" -type f | head -1 | xargs -I{} ln -sf {} /usr/local/bin/conduit && \ | |
| chmod +x /usr/local/bin/conduit && \ | |
| conduit --version || echo "conduit binary ready" | |
| # Install Python deps | |
| COPY requirements.txt /tmp/requirements.txt | |
| RUN pip install --no-cache-dir -r /tmp/requirements.txt | |
| # Config files | |
| COPY conduit.toml /etc/conduit/conduit.toml | |
| COPY nginx.conf /etc/nginx/nginx.conf | |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf | |
| # Scripts | |
| COPY start.sh /start.sh | |
| COPY sync_loop.sh /sync_loop.sh | |
| RUN chmod +x /start.sh /sync_loop.sh | |
| # Application | |
| COPY app/ /app/ | |
| # Create directories | |
| RUN mkdir -p /data/conduit /var/log/supervisor | |
| EXPOSE 7860 | |
| CMD ["/start.sh"] | |