FROM oven/bun:1 WORKDIR /app # Copy dependency files for layer caching COPY package.json bun.lock ./ COPY packages/core/package.json packages/core/package.json COPY packages/api/package.json packages/api/package.json COPY packages/frontend/package.json packages/frontend/package.json # Install dependencies (cached unless package files change) RUN bun install # Source code is volume-mounted at runtime, overriding this copy COPY . . # Dev entrypoint: re-runs bun install to pick up dependency changes, then exec's the command COPY docker/entrypoint.dev.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]