Subham9126 commited on
Commit
e2e1db8
·
verified ·
1 Parent(s): ad243b5

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +46 -0
Dockerfile ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Stage 1: Build
2
+ FROM node:22-alpine AS builder
3
+
4
+ WORKDIR /app
5
+
6
+ # Clone ChartDB source
7
+ RUN apk add --no-cache git && \
8
+ git clone https://github.com/chartdb/chartdb.git .
9
+
10
+ RUN npm install
11
+
12
+ # Pass the OpenAI key at build time
13
+ ARG OPENAI_API_KEY
14
+ ENV VITE_OPENAI_API_KEY=$OPENAI_API_KEY
15
+
16
+ RUN npm run build
17
+
18
+ # Stage 2: Serve with NGINX
19
+ FROM nginx:alpine
20
+
21
+ # HF Spaces requires non-root user with uid 1000
22
+ RUN adduser -D -u 1000 user
23
+
24
+ COPY --from=builder /app/dist /usr/share/nginx/html
25
+
26
+ # Custom nginx config to listen on port 80
27
+ RUN echo 'server { \
28
+ listen 80; \
29
+ location / { \
30
+ root /usr/share/nginx/html; \
31
+ try_files $uri /index.html; \
32
+ } \
33
+ }' > /etc/nginx/conf.d/default.conf
34
+
35
+ # Fix permissions
36
+ RUN chown -R user:user /usr/share/nginx/html && \
37
+ chown -R user:user /var/cache/nginx && \
38
+ chown -R user:user /var/log/nginx && \
39
+ touch /var/run/nginx.pid && \
40
+ chown user:user /var/run/nginx.pid
41
+
42
+ USER user
43
+
44
+ EXPOSE 80
45
+
46
+ CMD ["nginx", "-g", "daemon off;"]