rspace-online/Dockerfile

47 lines
989 B
Docker

# 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"]