diff --git a/Dockerfile b/Dockerfile index cb67019..6e4fc54 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM node:20.18.0 +ARG BASE=node:20.18.0 +FROM ${BASE} AS base WORKDIR /app @@ -13,4 +14,19 @@ COPY . . # Expose the port the app runs on EXPOSE 5173 -CMD [ "pnpm", "run", "dev", "--host" ] +# Production image +FROM base AS bolt-ai-production + +ENV WRANGLER_SEND_METRICS=false + +# Pre-configure wrangler to disable metrics +RUN mkdir -p /root/.config/.wrangler && \ + echo '{"enabled":false}' > /root/.config/.wrangler/metrics.json + +RUN npm run build + +CMD [ "pnpm", "run", "dockerstart"] + +# Development image +FROM base AS bolt-ai-dev +ENTRYPOINT ["pnpm", "run", "dev", "--host"] \ No newline at end of file diff --git a/package.json b/package.json index 737ca05..837ac7c 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,10 @@ "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", "lint:fix": "npm run lint -- --fix", "start": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings", + "dockerstart": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings --ip 0.0.0.0 --port 5173 --no-show-interactive-dev-session", + "dockerrun": "docker run -it -d --name bolt-ai-live -p 5173:5173 --env-file .env.local bolt-ai", + "dockerbuild-prod": "docker build -t bolt-ai:production bolt-ai:latest --target bolt-ai-production .", + "dockerbuild": "docker build -t bolt-ai:development -t bolt-ai:latest --target bolt-ai-dev .", "typecheck": "tsc", "typegen": "wrangler types", "preview": "pnpm run build && pnpm run start" diff --git a/wrangler.toml b/wrangler.toml index 09f2e3a..93c4160 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -3,3 +3,4 @@ name = "bolt" compatibility_flags = ["nodejs_compat"] compatibility_date = "2024-07-01" pages_build_output_dir = "./build/client" +send_metrics = false