|
ARG BASE=node:20.18.0 |
|
FROM ${BASE} |
|
|
|
|
|
RUN apt-get update && apt-get install -y git procps |
|
|
|
WORKDIR /app |
|
|
|
|
|
RUN git clone --recurse-submodules https://github.com/stackblitz-labs/bolt.diy ./ |
|
|
|
|
|
RUN npm install -g corepack@latest |
|
RUN corepack enable pnpm && pnpm install --frozen-lockfile |
|
|
|
|
|
RUN sed -i '/export default defineConfig(/a \ plugins: [remix()],' vite.config.ts && \ |
|
sed -i "1i import { vitePlugin as remix } from '@remix-run/dev';" vite.config.ts |
|
RUN pnpm add -D @remix-run/dev @remix-run/react @cloudflare/workers-types |
|
|
|
RUN echo "import { vitePlugin as remix } from '@remix-run/dev';" > vite.config.header.ts && \ |
|
cat vite.config.ts >> vite.config.tmp && \ |
|
mv vite.config.tmp vite.config.ts |
|
|
|
|
|
ENV WRANGLER_SEND_METRICS=false \ |
|
NODE_OPTIONS="--max-old-space-size=4096" \ |
|
TCMALLOC_RELEASE_RATE=0 \ |
|
NODE_ENV=production \ |
|
MINIFLARE_PERSIST="false" |
|
|
|
|
|
RUN mkdir -p /root/.config/.wrangler && \ |
|
echo '{"enabled":false}' > /root/.config/.wrangler/metrics.json && \ |
|
mkdir -p /root/.config/wrangler && \ |
|
echo 'workers_dev = true' > /root/.config/wrangler/config.toml |
|
|
|
|
|
RUN pnpm run build |
|
|
|
EXPOSE 5173 |
|
|
|
CMD ["pnpm", "run", "dockerstart"] |