arkleinberg commited on
Commit
4812d1b
Β·
verified Β·
1 Parent(s): 95fb789

Fix npm dependency conflict - use --legacy-peer-deps

Browse files
Files changed (1) hide show
  1. Dockerfile +78 -78
Dockerfile CHANGED
@@ -1,78 +1,78 @@
1
- # ═══════════════════════════════════════════════════════════════════════
2
- # Ark.Alliance.StartupCms.AI - Hugging Face Spaces Docker Deployment
3
- # ═══════════════════════════════════════════════════════════════════════
4
-
5
- # Stage 1: Build Shared Library
6
- FROM node:22-alpine AS share-builder
7
- WORKDIR /app/share
8
- COPY Ark.Alliance.StartupCms.Ai.Share/package*.json ./
9
- RUN npm ci
10
- COPY Ark.Alliance.StartupCms.Ai.Share/ ./
11
- RUN npm run build
12
-
13
- # Stage 2: Build Frontend
14
- FROM node:22-alpine AS frontend-builder
15
- WORKDIR /app
16
- COPY --from=share-builder /app/share /app/Ark.Alliance.StartupCms.Ai.Share
17
- WORKDIR /app/frontend
18
- COPY Ark.Alliance.StartupCms.Ai.UI/package*.json ./
19
- RUN npm ci
20
- COPY Ark.Alliance.StartupCms.Ai.UI/ ./
21
- ENV VITE_API_URL=/api
22
- ENV VITE_USE_MOCK_DATA=false
23
- RUN npm run build
24
-
25
- # Stage 3: Build Backend
26
- FROM node:22-alpine AS backend-builder
27
- WORKDIR /app
28
- COPY --from=share-builder /app/share /app/Ark.Alliance.StartupCms.Ai.Share
29
- WORKDIR /app/backend
30
- COPY Ark.Alliance.StartupCms.Ai.Backend/package*.json ./
31
- RUN npm ci
32
- COPY Ark.Alliance.StartupCms.Ai.Backend/ ./
33
- RUN npm run build
34
-
35
- # Stage 4: Production Runtime
36
- FROM node:22-alpine AS production
37
- RUN apk add --no-cache nginx
38
-
39
- WORKDIR /app
40
-
41
- # Copy backend build
42
- COPY --from=backend-builder /app/backend/dist ./dist
43
- COPY --from=backend-builder /app/backend/node_modules ./node_modules
44
- COPY --from=backend-builder /app/backend/package.json ./
45
- COPY --from=backend-builder /app/Ark.Alliance.StartupCms.Ai.Share /app/Ark.Alliance.StartupCms.Ai.Share
46
-
47
- # Copy Assets for database seeding
48
- COPY --from=backend-builder /app/backend/src/Assets ./dist/Assets
49
-
50
- # Copy frontend static files
51
- COPY --from=frontend-builder /app/frontend/dist /usr/share/nginx/html
52
-
53
- # Copy nginx config
54
- COPY nginx.conf /etc/nginx/nginx.conf
55
-
56
- # Create persistent data directory (HuggingFace provides /data)
57
- RUN mkdir -p /data
58
- RUN mkdir -p /app/data
59
-
60
- # HF Spaces runs as user 1000
61
- RUN chown -R 1000:1000 /app /usr/share/nginx/html /var/lib/nginx /var/log/nginx /data
62
-
63
- # Environment defaults
64
- ENV PORT=3085
65
- ENV NODE_ENV=production
66
- ENV DATABASE_TYPE=sqlite
67
- ENV DATABASE_NAME=/data/startupcms.db
68
- ENV SEED_DATABASE=true
69
-
70
- # Expose HF Spaces default port
71
- EXPOSE 7860
72
-
73
- # Start script
74
- COPY start.sh /app/start.sh
75
- RUN chmod +x /app/start.sh
76
-
77
- USER 1000
78
- CMD ["/app/start.sh"]
 
1
+ # ═══════════════════════════════════════════════════════════════════════
2
+ # Ark.Alliance.StartupCms.AI - Hugging Face Spaces Docker Deployment
3
+ # ═══════════════════════════════════════════════════════════════════════
4
+
5
+ # Stage 1: Build Shared Library
6
+ FROM node:22-alpine AS share-builder
7
+ WORKDIR /app/share
8
+ COPY Ark.Alliance.StartupCms.Ai.Share/package*.json ./
9
+ RUN npm install --legacy-peer-deps
10
+ COPY Ark.Alliance.StartupCms.Ai.Share/ ./
11
+ RUN npm run build
12
+
13
+ # Stage 2: Build Frontend
14
+ FROM node:22-alpine AS frontend-builder
15
+ WORKDIR /app
16
+ COPY --from=share-builder /app/share /app/Ark.Alliance.StartupCms.Ai.Share
17
+ WORKDIR /app/frontend
18
+ COPY Ark.Alliance.StartupCms.Ai.UI/package*.json ./
19
+ RUN npm install --legacy-peer-deps
20
+ COPY Ark.Alliance.StartupCms.Ai.UI/ ./
21
+ ENV VITE_API_URL=/api
22
+ ENV VITE_USE_MOCK_DATA=false
23
+ RUN npm run build
24
+
25
+ # Stage 3: Build Backend
26
+ FROM node:22-alpine AS backend-builder
27
+ WORKDIR /app
28
+ COPY --from=share-builder /app/share /app/Ark.Alliance.StartupCms.Ai.Share
29
+ WORKDIR /app/backend
30
+ COPY Ark.Alliance.StartupCms.Ai.Backend/package*.json ./
31
+ RUN npm install --legacy-peer-deps
32
+ COPY Ark.Alliance.StartupCms.Ai.Backend/ ./
33
+ RUN npm run build
34
+
35
+ # Stage 4: Production Runtime
36
+ FROM node:22-alpine AS production
37
+ RUN apk add --no-cache nginx
38
+
39
+ WORKDIR /app
40
+
41
+ # Copy backend build
42
+ COPY --from=backend-builder /app/backend/dist ./dist
43
+ COPY --from=backend-builder /app/backend/node_modules ./node_modules
44
+ COPY --from=backend-builder /app/backend/package.json ./
45
+ COPY --from=backend-builder /app/Ark.Alliance.StartupCms.Ai.Share /app/Ark.Alliance.StartupCms.Ai.Share
46
+
47
+ # Copy Assets for database seeding
48
+ COPY --from=backend-builder /app/backend/src/Assets ./dist/Assets
49
+
50
+ # Copy frontend static files
51
+ COPY --from=frontend-builder /app/frontend/dist /usr/share/nginx/html
52
+
53
+ # Copy nginx config
54
+ COPY nginx.conf /etc/nginx/nginx.conf
55
+
56
+ # Create persistent data directory (HuggingFace provides /data)
57
+ RUN mkdir -p /data
58
+ RUN mkdir -p /app/data
59
+
60
+ # HF Spaces runs as user 1000
61
+ RUN chown -R 1000:1000 /app /usr/share/nginx/html /var/lib/nginx /var/log/nginx /data
62
+
63
+ # Environment defaults
64
+ ENV PORT=3085
65
+ ENV NODE_ENV=production
66
+ ENV DATABASE_TYPE=sqlite
67
+ ENV DATABASE_NAME=/data/startupcms.db
68
+ ENV SEED_DATABASE=true
69
+
70
+ # Expose HF Spaces default port
71
+ EXPOSE 7860
72
+
73
+ # Start script
74
+ COPY start.sh /app/start.sh
75
+ RUN chmod +x /app/start.sh
76
+
77
+ USER 1000
78
+ CMD ["/app/start.sh"]