Dockerfile.api
Rama main · réplica de lectura del repositorio original.
FROM node:20-slim
WORKDIR /app
# Install and bun
RUN npm install -g bun
# Copy package files
COPY package.json bun.lock turbo.json ./
COPY apps/api/package.json ./apps/api/
COPY packages/typescript-config/package.json ./packages/typescript-config/
COPY packages/core/package.json ./packages/core/
COPY packages/transactional/package.json ./packages/transactional/
COPY packages/types/package.json ./packages/types/
COPY packages/jobs/package.json ./packages/jobs/
COPY packages/facehash/package.json ./packages/facehash/
COPY packages/tiny-markdown/package.json ./packages/tiny-markdown/
COPY packages/redis/package.json ./packages/redis/
COPY packages/location/package.json ./packages/location/
COPY packages/memory/package.json ./packages/memory/
COPY packages/protocol/package.json ./packages/protocol/
COPY tinybird/package.json ./tinybird/
# Install dependencies
RUN bun install
# Copy source files
COPY . .
# Build dependencies (transactional, types, location packages)
# but skip the API binary compilation
RUN bunx turbo run build --filter=@cossistant/api^...
# # Build TypeScript types for the API
# RUN cd apps/api && bun run build:types
# Railway will set the PORT environment variable
# EXPOSE is mainly for documentation, the actual port is controlled by env.PORT
# Run with bun runtime instead of compiled binary
CMD ["bun", "run", "apps/api/src/index.ts"]