Heuehneje commited on
Commit
acf4d84
·
verified ·
1 Parent(s): 99aeb14

Upload 2 files

Browse files
Files changed (2) hide show
  1. Dockerfile +24 -75
  2. README.md +1 -1
Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
  ARG BASE=node:20.18.0
2
- FROM ${BASE} AS base
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 (this step is cached as long as the dependencies don't change)
15
  COPY --chown=node:node package.json pnpm-lock.yaml ./
16
-
17
  RUN pnpm install
18
 
19
- # Copy the rest of your app's source code
20
  COPY --chown=node:node . .
21
 
22
- # Expose the port the app runs on
23
- EXPOSE 5173
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
- ENV WRANGLER_SEND_METRICS=false \
44
- GROQ_API_KEY=${GROQ_API_KEY} \
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
- # Pre-configure wrangler to disable metrics
60
- RUN mkdir -p /root/.config/.wrangler && \
61
- echo '{"enabled":false}' > /root/.config/.wrangler/metrics.json
62
 
63
- RUN pnpm run build
 
64
 
65
- CMD [ "pnpm", "run", "dockerstart"]
 
 
 
 
66
 
67
- # Development image
68
- FROM base AS bolt-ai-development
 
69
 
70
- # Define the same environment variables for development
71
- ARG GROQ_API_KEY
72
- ARG HuggingFace_API_KEY
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
- ENV GROQ_API_KEY=${GROQ_API_KEY} \
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
- RUN mkdir -p ${WORKDIR}/run
100
- CMD pnpm run dev --host
 
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: 3000
8
  pinned: false
9
  ---
10
 
 
4
  colorFrom: blue
5
  colorTo: indigo
6
  sdk: docker
7
+ app_port: 7860
8
  pinned: false
9
  ---
10