Upload 2 files
Browse files- Dockerfile +24 -75
- README.md +1 -1
Dockerfile
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
ARG BASE=node:20.18.0
|
2 |
-
FROM ${BASE} AS
|
3 |
|
4 |
# Enable corepack as root first
|
5 |
RUN corepack enable pnpm
|
@@ -11,90 +11,39 @@ RUN chown -R node:node /app
|
|
11 |
# Switch to non-root user
|
12 |
USER node
|
13 |
|
14 |
-
# Install dependencies
|
15 |
COPY --chown=node:node package.json pnpm-lock.yaml ./
|
16 |
-
|
17 |
RUN pnpm install
|
18 |
|
19 |
-
# Copy
|
20 |
COPY --chown=node:node . .
|
21 |
|
22 |
-
#
|
23 |
-
|
24 |
-
|
25 |
-
# Production image
|
26 |
-
FROM base AS bolt-ai-production
|
27 |
-
|
28 |
-
# Define environment variables with default values or let them be overridden
|
29 |
-
ARG GROQ_API_KEY
|
30 |
-
ARG HuggingFace_API_KEY
|
31 |
-
ARG OPENAI_API_KEY
|
32 |
-
ARG ANTHROPIC_API_KEY
|
33 |
-
ARG OPEN_ROUTER_API_KEY
|
34 |
-
ARG GOOGLE_GENERATIVE_AI_API_KEY
|
35 |
-
ARG OLLAMA_API_BASE_URL
|
36 |
-
ARG XAI_API_KEY
|
37 |
-
ARG TOGETHER_API_KEY
|
38 |
-
ARG TOGETHER_API_BASE_URL
|
39 |
-
ARG AWS_BEDROCK_CONFIG
|
40 |
-
ARG VITE_LOG_LEVEL=debug
|
41 |
-
ARG DEFAULT_NUM_CTX
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
HuggingFace_KEY=${HuggingFace_API_KEY} \
|
46 |
-
OPENAI_API_KEY=${OPENAI_API_KEY} \
|
47 |
-
ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} \
|
48 |
-
OPEN_ROUTER_API_KEY=${OPEN_ROUTER_API_KEY} \
|
49 |
-
GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY} \
|
50 |
-
OLLAMA_API_BASE_URL=${OLLAMA_API_BASE_URL} \
|
51 |
-
XAI_API_KEY=${XAI_API_KEY} \
|
52 |
-
TOGETHER_API_KEY=${TOGETHER_API_KEY} \
|
53 |
-
TOGETHER_API_BASE_URL=${TOGETHER_API_BASE_URL} \
|
54 |
-
AWS_BEDROCK_CONFIG=${AWS_BEDROCK_CONFIG} \
|
55 |
-
VITE_LOG_LEVEL=${VITE_LOG_LEVEL} \
|
56 |
-
DEFAULT_NUM_CTX=${DEFAULT_NUM_CTX}\
|
57 |
-
RUNNING_IN_DOCKER=true
|
58 |
|
59 |
-
|
60 |
-
RUN mkdir -p /root/.config/.wrangler && \
|
61 |
-
echo '{"enabled":false}' > /root/.config/.wrangler/metrics.json
|
62 |
|
63 |
-
|
|
|
64 |
|
65 |
-
|
|
|
|
|
|
|
|
|
66 |
|
67 |
-
#
|
68 |
-
|
|
|
69 |
|
70 |
-
#
|
71 |
-
|
72 |
-
|
73 |
-
ARG OPENAI_API_KEY
|
74 |
-
ARG ANTHROPIC_API_KEY
|
75 |
-
ARG OPEN_ROUTER_API_KEY
|
76 |
-
ARG GOOGLE_GENERATIVE_AI_API_KEY
|
77 |
-
ARG OLLAMA_API_BASE_URL
|
78 |
-
ARG XAI_API_KEY
|
79 |
-
ARG TOGETHER_API_KEY
|
80 |
-
ARG TOGETHER_API_BASE_URL
|
81 |
-
ARG VITE_LOG_LEVEL=debug
|
82 |
-
ARG DEFAULT_NUM_CTX
|
83 |
|
84 |
-
|
85 |
-
HuggingFace_API_KEY=${HuggingFace_API_KEY} \
|
86 |
-
OPENAI_API_KEY=${OPENAI_API_KEY} \
|
87 |
-
ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} \
|
88 |
-
OPEN_ROUTER_API_KEY=${OPEN_ROUTER_API_KEY} \
|
89 |
-
GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY} \
|
90 |
-
OLLAMA_API_BASE_URL=${OLLAMA_API_BASE_URL} \
|
91 |
-
XAI_API_KEY=${XAI_API_KEY} \
|
92 |
-
TOGETHER_API_KEY=${TOGETHER_API_KEY} \
|
93 |
-
TOGETHER_API_BASE_URL=${TOGETHER_API_BASE_URL} \
|
94 |
-
AWS_BEDROCK_CONFIG=${AWS_BEDROCK_CONFIG} \
|
95 |
-
VITE_LOG_LEVEL=${VITE_LOG_LEVEL} \
|
96 |
-
DEFAULT_NUM_CTX=${DEFAULT_NUM_CTX}\
|
97 |
-
RUNNING_IN_DOCKER=true
|
98 |
|
99 |
-
|
100 |
-
CMD pnpm
|
|
|
1 |
ARG BASE=node:20.18.0
|
2 |
+
FROM ${BASE} AS builder
|
3 |
|
4 |
# Enable corepack as root first
|
5 |
RUN corepack enable pnpm
|
|
|
11 |
# Switch to non-root user
|
12 |
USER node
|
13 |
|
14 |
+
# Install dependencies
|
15 |
COPY --chown=node:node package.json pnpm-lock.yaml ./
|
|
|
16 |
RUN pnpm install
|
17 |
|
18 |
+
# Copy source code
|
19 |
COPY --chown=node:node . .
|
20 |
|
21 |
+
# Build the application
|
22 |
+
RUN pnpm run build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
+
# Production stage
|
25 |
+
FROM ${BASE} AS runner
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
+
WORKDIR /app
|
|
|
|
|
28 |
|
29 |
+
# Enable corepack in production
|
30 |
+
RUN corepack enable pnpm
|
31 |
|
32 |
+
# Copy built assets from builder
|
33 |
+
COPY --from=builder --chown=node:node /app/build ./build
|
34 |
+
COPY --from=builder --chown=node:node /app/public ./public
|
35 |
+
COPY --from=builder --chown=node:node /app/package.json ./package.json
|
36 |
+
COPY --from=builder --chown=node:node /app/pnpm-lock.yaml ./pnpm-lock.yaml
|
37 |
|
38 |
+
# Install production dependencies only
|
39 |
+
USER node
|
40 |
+
RUN pnpm install --prod
|
41 |
|
42 |
+
# Set production environment
|
43 |
+
ENV NODE_ENV=production
|
44 |
+
ENV PORT=7860
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
+
EXPOSE 7860
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
+
# Start the server
|
49 |
+
CMD ["pnpm", "start"]
|
README.md
CHANGED
@@ -4,7 +4,7 @@ emoji: ⚡
|
|
4 |
colorFrom: blue
|
5 |
colorTo: indigo
|
6 |
sdk: docker
|
7 |
-
app_port:
|
8 |
pinned: false
|
9 |
---
|
10 |
|
|
|
4 |
colorFrom: blue
|
5 |
colorTo: indigo
|
6 |
sdk: docker
|
7 |
+
app_port: 7860
|
8 |
pinned: false
|
9 |
---
|
10 |
|