# Build stage FROM oven/bun:1 AS build WORKDIR /app # Copy package files COPY rspace-online/package.json rspace-online/bun.lockb* ./ # Copy local SDK dependency (package.json references file:../encryptid-sdk) COPY encryptid-sdk /encryptid-sdk/ RUN bun install --frozen-lockfile # Copy source COPY rspace-online/ . # Build frontend RUN bun run build # Production stage FROM oven/bun:1-slim AS production WORKDIR /app # Copy built assets and server COPY --from=build /app/dist ./dist COPY --from=build /app/server ./server COPY --from=build /app/lib ./lib COPY --from=build /app/package.json . COPY --from=build /encryptid-sdk /encryptid-sdk # Install production dependencies only RUN bun install --production --frozen-lockfile # Create data directory RUN mkdir -p /data/communities # Set environment ENV NODE_ENV=production ENV STORAGE_DIR=/data/communities ENV PORT=3000 # Data volume for persistence VOLUME /data/communities EXPOSE 3000 CMD ["bun", "run", "server/index.ts"]