FROM oven/bun:1.1-alpine WORKDIR /app # Install dependencies COPY package.json package-lock.json ./ RUN bun install --production # Copy source code COPY src/ ./src/ COPY public/ ./public/ COPY tsconfig.json ./ # Build the project RUN bun run build # Create data and logs directories RUN mkdir -p /app/data /app/logs # Expose ports EXPOSE 3000 1455 # Set environment variables ENV PORT=3000 ENV NODE_ENV=production # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD bun run -e "fetch('http://localhost:3000/health').then(r => process.exit(r.ok ? 0 : 1))" # Start the server CMD ["bun", "run", "start"]