mirror of
https://github.com/yamadashy/repomix.git
synced 2026-10-08 17:49:11 +02:00
Replace the GitHub social link icon with an interactive GitHub star button (via github-buttons) that displays the live star count. The button is shown in the navbar on desktop and in the hamburger menu on mobile. Also fix the server Dockerfile for local development by downgrading npm to avoid the --min-release-age / --before conflict with Node 24. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
65 lines
2.1 KiB
Docker
65 lines
2.1 KiB
Docker
# ==============================================================================
|
|
# Build stage
|
|
# ==============================================================================
|
|
FROM node:24-alpine AS builder
|
|
|
|
# Install git (required for GitHub-based npm dependencies)
|
|
RUN apk add --no-cache git
|
|
|
|
# Downgrade npm to avoid --min-release-age conflict with --before for git deps
|
|
RUN npm install -g npm@11.4.0
|
|
|
|
WORKDIR /app
|
|
COPY package*.json ./
|
|
|
|
# Install all dependencies (including dev dependencies for build)
|
|
RUN npm ci
|
|
|
|
# Copy source code and bundle
|
|
COPY . .
|
|
RUN npm run bundle
|
|
|
|
|
|
# ==============================================================================
|
|
# Runtime image
|
|
# ==============================================================================
|
|
FROM node:24-alpine
|
|
|
|
# Install git and ca-certificates (required by repomix for remote repository processing)
|
|
RUN apk add --no-cache git ca-certificates
|
|
|
|
# Downgrade npm to avoid --min-release-age conflict with --before for git deps (used by compose dev command)
|
|
RUN npm install -g npm@11.4.0
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy bundled server and WASM files
|
|
COPY --from=builder /app/dist-bundled ./dist-bundled
|
|
|
|
# Copy external dependencies (cannot be bundled due to runtime requirements)
|
|
# - tinypool: spawns worker threads using file paths
|
|
# - tiktoken: loads WASM files dynamically at runtime
|
|
COPY --from=builder /app/node_modules/tinypool ./node_modules/tinypool
|
|
COPY --from=builder /app/node_modules/tiktoken ./node_modules/tiktoken
|
|
|
|
# Copy warmup script for compile cache generation
|
|
COPY --from=builder /app/warmup.mjs ./warmup.mjs
|
|
|
|
# Set environment variables for bundled mode
|
|
# NODE_COMPILE_CACHE enables V8 compile cache to reduce cold start latency
|
|
ENV NODE_ENV=production \
|
|
PORT=8080 \
|
|
REPOMIX_WORKER_PATH=/app/dist-bundled/worker.mjs \
|
|
REPOMIX_WASM_DIR=/app/dist-bundled/wasm \
|
|
NODE_COMPILE_CACHE=/app/.compile-cache
|
|
|
|
# Generate compile cache at build time
|
|
# This pre-compiles all modules so cold starts use cached compiled code
|
|
RUN node warmup.mjs
|
|
|
|
# Expose port
|
|
EXPOSE 8080
|
|
|
|
# Start the bundled server
|
|
CMD ["node", "dist-bundled/server.mjs"]
|