Highly ambitious ATProtocol AppView service and sdks
at main 1.6 kB view raw
1FROM denoland/deno:2.5.1 2 3# Build arguments for Vite environment variables (embedded at build time) 4ARG VITE_API_URL 5ARG VITE_SLICE_URI 6ARG VITE_ADMIN_DIDS 7 8# Install sqlite3 9RUN apt-get update && apt-get install -y sqlite3 && rm -rf /var/lib/apt/lists/* 10 11WORKDIR /app 12 13# Copy workspace lock file and all Deno packages 14COPY --chown=deno:deno deno.lock /app/deno.lock 15COPY --chown=deno:deno deno.json /app/deno.json 16COPY --chown=deno:deno frontend/ /app/frontend/ 17COPY --chown=deno:deno frontend-v2/ /app/frontend-v2/ 18COPY --chown=deno:deno packages/oauth/ /app/packages/oauth/ 19COPY --chown=deno:deno packages/codegen/ /app/packages/codegen/ 20COPY --chown=deno:deno packages/session/ /app/packages/session/ 21COPY --chown=deno:deno packages/cli/ /app/packages/cli/ 22COPY --chown=deno:deno packages/lexicon/ /app/packages/lexicon/ 23COPY --chown=deno:deno packages/client/ /app/packages/client/ 24COPY --chown=deno:deno docs/ /app/docs/ 25 26# Ensure proper permissions for node_modules directories 27RUN mkdir -p /app/frontend-v2/node_modules /app/node_modules && \ 28 chown -R deno:deno /app 29 30# Switch to deno user before caching 31USER deno 32 33# Cache dependencies and build the frontend 34WORKDIR /app/frontend-v2 35RUN deno cache ./server/main.ts 36 37# Set Vite environment variables for build (these get embedded in the bundle) 38ENV VITE_API_URL=$VITE_API_URL 39ENV VITE_SLICE_URI=$VITE_SLICE_URI 40ENV VITE_ADMIN_DIDS=$VITE_ADMIN_DIDS 41 42# Build the Vite frontend 43RUN deno task build 44 45# Expose port 46EXPOSE 8080 47 48# Set NODE_ENV to production 49ENV NODE_ENV=production 50 51# Start the Deno server (serves the built frontend from dist/) 52CMD ["run", "-A", "./server/main.ts"]