From 28093ccd22df4ed5bcef0ee001248eb699625476 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 11 Dec 2025 17:14:03 +0000 Subject: [PATCH] Remove custom Dockerfile, use official --- Dockerfile | 103 -------------------------------- app/components/ui/Button.tsx | 3 +- app/lib/hooks/StickToBottom.tsx | 3 +- 3 files changed, 2 insertions(+), 107 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 1ad0c1d..0000000 --- a/Dockerfile +++ /dev/null @@ -1,103 +0,0 @@ -# ---- build stage ---- -FROM node:22-bookworm-slim AS build -WORKDIR /app - -# CI-friendly env -ENV HUSKY=0 -ENV CI=true - -# Use pnpm -RUN corepack enable && corepack prepare pnpm@9.15.9 --activate - -# Ensure git is available for build and runtime scripts -RUN apt-get update && apt-get install -y --no-install-recommends git \ - && rm -rf /var/lib/apt/lists/* - -# Accept (optional) build-time public URL for Remix/Vite (Coolify can pass it) -ARG VITE_PUBLIC_APP_URL -ENV VITE_PUBLIC_APP_URL=${VITE_PUBLIC_APP_URL} - -# Install deps efficiently -COPY package.json pnpm-lock.yaml* ./ -RUN pnpm fetch - -# Copy source and build -COPY . . -# install with dev deps (needed to build) -RUN pnpm install --offline --frozen-lockfile - -# Build the Remix app (SSR + client) -RUN NODE_OPTIONS=--max-old-space-size=4096 pnpm run build - -# ---- production dependencies stage ---- -FROM build AS prod-deps - -# Keep only production deps for runtime -RUN pnpm prune --prod --ignore-scripts - - -# ---- production stage ---- -FROM prod-deps AS bolt-ai-production -WORKDIR /app - -ENV NODE_ENV=production -ENV PORT=5173 -ENV HOST=0.0.0.0 - -# Non-sensitive build arguments -ARG VITE_LOG_LEVEL=debug -ARG DEFAULT_NUM_CTX - -# Set non-sensitive environment variables -ENV WRANGLER_SEND_METRICS=false \ - VITE_LOG_LEVEL=${VITE_LOG_LEVEL} \ - DEFAULT_NUM_CTX=${DEFAULT_NUM_CTX} \ - RUNNING_IN_DOCKER=true - -# Note: API keys should be provided at runtime via docker run -e or docker-compose -# Example: docker run -e OPENAI_API_KEY=your_key_here ... - -# Install curl for healthchecks and copy bindings script -RUN apt-get update && apt-get install -y --no-install-recommends curl \ - && rm -rf /var/lib/apt/lists/* - -# Copy built files and scripts -COPY --from=prod-deps /app/build /app/build -COPY --from=prod-deps /app/node_modules /app/node_modules -COPY --from=prod-deps /app/package.json /app/package.json -COPY --from=prod-deps /app/bindings.sh /app/bindings.sh - -# Pre-configure wrangler to disable metrics -RUN mkdir -p /root/.config/.wrangler && \ - echo '{"enabled":false}' > /root/.config/.wrangler/metrics.json - -# Make bindings script executable -RUN chmod +x /app/bindings.sh - -EXPOSE 5173 - -# Healthcheck for deployment platforms -HEALTHCHECK --interval=10s --timeout=3s --start-period=5s --retries=5 \ - CMD curl -fsS http://localhost:5173/ || exit 1 - -# Start using dockerstart script with Wrangler -CMD ["pnpm", "run", "dockerstart"] - - -# ---- development stage ---- -FROM build AS development - -# Non-sensitive development arguments -ARG VITE_LOG_LEVEL=debug -ARG DEFAULT_NUM_CTX - -# Set non-sensitive environment variables for development -ENV VITE_LOG_LEVEL=${VITE_LOG_LEVEL} \ - DEFAULT_NUM_CTX=${DEFAULT_NUM_CTX} \ - RUNNING_IN_DOCKER=true - -# Note: API keys should be provided at runtime via docker run -e or docker-compose -# Example: docker run -e OPENAI_API_KEY=your_key_here ... - -RUN mkdir -p /app/run -CMD ["pnpm", "run", "dev", "--host"] diff --git a/app/components/ui/Button.tsx b/app/components/ui/Button.tsx index a2f9e3b..ce743eb 100644 --- a/app/components/ui/Button.tsx +++ b/app/components/ui/Button.tsx @@ -31,8 +31,7 @@ const buttonVariants = cva( ); export interface ButtonProps - extends React.ButtonHTMLAttributes, - VariantProps { + extends React.ButtonHTMLAttributes, VariantProps { _asChild?: boolean; } diff --git a/app/lib/hooks/StickToBottom.tsx b/app/lib/hooks/StickToBottom.tsx index 69a0b27..787b3ec 100644 --- a/app/lib/hooks/StickToBottom.tsx +++ b/app/lib/hooks/StickToBottom.tsx @@ -40,8 +40,7 @@ export interface StickToBottomContext { const StickToBottomContext = createContext(null); export interface StickToBottomProps - extends Omit, 'children'>, - StickToBottomOptions { + extends Omit, 'children'>, StickToBottomOptions { contextRef?: React.Ref; instance?: ReturnType; children: ((context: StickToBottomContext) => ReactNode) | ReactNode;