FROM denoland/deno:2.3.3 # Install sqlite3 RUN apt-get update && apt-get install -y sqlite3 && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy workspace lock file and all Deno packages COPY --chown=deno:deno deno.lock /app/deno.lock COPY --chown=deno:deno deno.json /app/deno.json COPY --chown=deno:deno frontend/ /app/frontend/ COPY --chown=deno:deno frontend-v2/ /app/frontend-v2/ COPY --chown=deno:deno packages/oauth/ /app/packages/oauth/ COPY --chown=deno:deno packages/codegen/ /app/packages/codegen/ COPY --chown=deno:deno packages/session/ /app/packages/session/ COPY --chown=deno:deno packages/cli/ /app/packages/cli/ COPY --chown=deno:deno packages/lexicon/ /app/packages/lexicon/ COPY --chown=deno:deno packages/client/ /app/packages/client/ COPY --chown=deno:deno docs/ /app/docs/ # Ensure proper permissions for node_modules directories RUN mkdir -p /app/frontend/node_modules /app/node_modules && \ chown -R deno:deno /app # Switch to deno user before caching USER deno # Cache from frontend directory RUN deno cache ./frontend/src/main.ts EXPOSE 8080 CMD ["run", "-A", "./frontend/src/main.ts"]