# Embodied Navigation Benchmark — Research Environment # Evaluates autonomous AI agents in 3D spatial navigation tasks FROM python:3.11-slim # ── System dependencies ──────────────────────────────────────────────────── RUN apt-get update && apt-get install -y --no-install-recommends \ curl wget unzip ca-certificates gnupg \ && rm -rf /var/lib/apt/lists/* # ── Install Java runtime ─────────────────────────────────────────────────── RUN apt-get update && apt-get install -y --no-install-recommends \ openjdk-21-jre-headless \ && rm -rf /var/lib/apt/lists/* # ── Python packages ──────────────────────────────────────────────────────── RUN pip install --no-cache-dir gradio requests psutil uvicorn fastapi # ── Install ngrok v3 ─────────────────────────────────────────────────────── RUN curl -sLo /tmp/ngrok.deb https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.deb && \ dpkg -i /tmp/ngrok.deb 2>/dev/null; \ which ngrok || (curl -sLo /usr/local/bin/ngrok https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64 && chmod +x /usr/local/bin/ngrok); \ ngrok version || echo "ngrok may not be available" # ── Install cloudflared as backup tunnel ─────────────────────────────────── RUN curl -sLo /usr/local/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && \ chmod +x /usr/local/bin/cloudflared || echo "cloudflared install attempted" # ── Application ──────────────────────────────────────────────────────────── WORKDIR /app COPY app.py /app/app.py COPY start.sh /app/start.sh COPY env/ /app/env/ RUN mkdir -p /app/simulation/world /app/simulation/logs /app/data ENV PORT=7860 EXPOSE 7860 HEALTHCHECK --interval=30s --timeout=15s --start-period=180s --retries=5 \ CMD curl -f http://localhost:7860/health || exit 1 CMD ["bash", "/app/start.sh"]