# API PANELS — Deno + SQLite FFI + Liquibase/JRE (Debian slim, no Alpine) FROM denoland/deno:2.9.5 USER root RUN apt-get update \ && apt-get install -y --no-install-recommends \ openjdk-21-jre-headless \ curl \ unzip \ bash \ ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY db/ ./db/ COPY api/ ./api/ RUN chmod +x ./db/bootstrap-tools.sh \ && ./db/bootstrap-tools.sh \ && mkdir -p /app/data \ && chown -R deno:deno /app USER deno WORKDIR /app/api RUN deno cache main.ts ENV PORT=8000 EXPOSE 8000 HEALTHCHECK --interval=30s --timeout=5s --start-period=45s --retries=3 \ CMD ["deno", "eval", "const r=await fetch('http://127.0.0.1:'+(Deno.env.get('PORT')||'8000')+'/v1/health'); if(!r.ok) Deno.exit(1)"] CMD ["deno", "run", "--allow-net", "--allow-read", "--allow-write", "--allow-env", "--allow-ffi", "--allow-run", "main.ts"]