feat: Скрипт для запуска
This commit is contained in:
51
apps/backend/Dockerfile
Normal file
51
apps/backend/Dockerfile
Normal file
@ -0,0 +1,51 @@
|
||||
FROM oven/bun:1.3 AS base
|
||||
WORKDIR /app
|
||||
|
||||
# Install dependencies
|
||||
FROM base AS deps
|
||||
# Copy root package files and lockfile first
|
||||
COPY package.json bun.lock ./
|
||||
# Copy workspace structure - all package.json files needed for workspace resolution
|
||||
COPY packages ./packages
|
||||
COPY apps ./apps
|
||||
# Install all dependencies (bun will resolve workspace dependencies)
|
||||
# Note: We copy full directories but bun only needs package.json files for resolution
|
||||
RUN bun install --frozen-lockfile
|
||||
|
||||
# Build stage
|
||||
FROM base AS build
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY --from=deps /app/packages ./packages
|
||||
# Copy backend source
|
||||
COPY apps/backend ./apps/backend
|
||||
# Build backend
|
||||
WORKDIR /app/apps/backend
|
||||
RUN bun run build
|
||||
|
||||
# Production stage
|
||||
FROM base AS production
|
||||
WORKDIR /app
|
||||
|
||||
# Copy dependencies and built files
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY --from=deps /app/packages ./packages
|
||||
# Copy source code (needed for migrations and tests)
|
||||
COPY --from=build /app/apps/backend/src ./apps/backend/src
|
||||
COPY --from=build /app/apps/backend/dist ./apps/backend/dist
|
||||
COPY --from=build /app/apps/backend/drizzle ./apps/backend/drizzle
|
||||
COPY --from=build /app/apps/backend/package.json ./apps/backend/
|
||||
COPY --from=build /app/apps/backend/tsconfig.json ./apps/backend/
|
||||
COPY --from=build /app/apps/backend/drizzle.config.ts ./apps/backend/
|
||||
|
||||
# Set working directory to backend
|
||||
WORKDIR /app/apps/backend
|
||||
|
||||
# Set environment to production
|
||||
ENV NODE_ENV=production
|
||||
|
||||
# Expose port
|
||||
EXPOSE 3000
|
||||
|
||||
# Default command (can be overridden)
|
||||
CMD ["bun", "run", "start"]
|
||||
|
||||
Reference in New Issue
Block a user