-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.dev
More file actions
51 lines (40 loc) · 1.48 KB
/
Dockerfile.dev
File metadata and controls
51 lines (40 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Development Dockerfile for Next.js AI Studio Application
# Issue #607 - Local Development Environment with Hot Reload
#
# This Dockerfile is optimized for development with:
# - Source code mounted as volume (not copied)
# - Dependencies pre-installed for fast startup
# - Hot module reloading enabled
#
# Usage:
# docker compose -f docker-compose.dev.yml up
#
# Key differences from production Dockerfile:
# - Uses dev dependencies
# - No build step (source mounted at runtime)
# - Runs `bun run dev` instead of production server
FROM oven/bun:1.3-alpine
WORKDIR /app
# Install dependencies for native packages
RUN apk add --no-cache libc6-compat
# Copy package files and patches first (for layer caching)
COPY package.json bun.lock ./
COPY patches/ ./patches/
# Install ALL dependencies including devDependencies
RUN bun install --frozen-lockfile
# Don't copy source code - it's mounted as a volume
# The app will be run via docker-compose with volume mounts
# Set development environment
ENV NODE_ENV=development
ENV NEXT_TELEMETRY_DISABLED=1
ENV PORT=3000
ENV HOSTNAME=0.0.0.0
# Enable filesystem polling for hot reload in Docker
ENV WATCHPACK_POLLING=true
EXPOSE 3000
# Entrypoint clears stale .next cache when source files change (Issue #800)
COPY scripts/docker/dev-entrypoint.sh /usr/local/bin/dev-entrypoint.sh
RUN chmod +x /usr/local/bin/dev-entrypoint.sh
ENTRYPOINT ["dev-entrypoint.sh"]
# Run custom server with WebSocket support for voice mode (Issue #873)
CMD ["bun", "run", "server.ts"]