1.0 KB38 lines
Blame
1# Grove Web UI Dockerfile
2FROM node:22-alpine AS builder
3
4WORKDIR /app
5COPY web/package.json web/package-lock.json* ./
6COPY web/mermaid ./mermaid
7RUN npm install
8
9COPY web/ ./
10RUN rm -f .env.local
11
12ARG GROVE_HUB_API_URL=http://localhost:4001
13ARG GROVE_API_URL=http://localhost:4000
14ENV GROVE_HUB_API_URL=$GROVE_HUB_API_URL
15ENV GROVE_API_URL=$GROVE_API_URL
16
17RUN npm run build
18RUN npx esbuild server/collab-socket.ts --bundle --platform=node --outfile=dist/collab-socket.js --external:bufferutil --external:utf-8-validate
19
20FROM node:22-alpine AS runner
21WORKDIR /app
22
23COPY --from=builder /app/.next/standalone ./
24COPY --from=builder /app/.next/static ./.next/static
25COPY --from=builder /app/public ./public
26COPY --from=builder /app/dist/collab-socket.js ./collab-socket.js
27COPY --from=builder /app/server/diagrams-default.json ./server/diagrams-default.json
28
29ENV PORT=3000
30ENV GROVE_HUB_API_URL=http://hub-api:4000
31EXPOSE 3000
32EXPOSE 3334
33
34COPY --from=builder /app/docker-entrypoint.sh ./docker-entrypoint.sh
35RUN chmod +x docker-entrypoint.sh
36
37CMD ["./docker-entrypoint.sh"]
38