Heuehneje commited on
Commit
d1cd674
·
verified ·
1 Parent(s): c1fc8d2

Upload 2 files

Browse files
Files changed (2) hide show
  1. Dockerfile +14 -55
  2. README.md +1 -2
Dockerfile CHANGED
@@ -1,75 +1,34 @@
1
- ARG BASE=node:20.18.0
2
- FROM ${BASE} AS builder
3
 
4
- # Install git and other dependencies
5
- RUN apt-get update && apt-get install -y git
6
-
7
- # Enable corepack as root first
8
- RUN corepack enable pnpm
9
-
10
- # Create app directory and set permissions
11
  WORKDIR /app
12
- RUN chown -R node:node /app
13
-
14
- # Switch to non-root user
15
- USER node
16
-
17
- # Initialize git repository as node user
18
- RUN git init && \
19
- git config --global user.email "[email protected]" && \
20
- git config --global user.name "Docker Build" && \
21
- git config --global --add safe.directory /app
22
-
23
- # Install dependencies
24
- COPY --chown=node:node package.json pnpm-lock.yaml ./
25
- RUN pnpm install
26
-
27
- # Copy source code
28
- COPY --chown=node:node . .
29
-
30
- # Add files to git to avoid build errors
31
- RUN git add . && \
32
- git commit -m "Initial commit"
33
 
34
- # Set environment variables for build
35
- ENV NODE_ENV=production
36
- ENV SERVER_PLATFORM=node
37
-
38
- # Build the application
39
- RUN pnpm run build
40
-
41
- # Production stage
42
- FROM ${BASE} AS runner
43
-
44
- WORKDIR /app
45
-
46
- # Enable corepack in production
47
  RUN corepack enable pnpm
48
 
49
- # Copy built assets from builder
50
- COPY --from=builder --chown=node:node /app/build ./build
51
- COPY --from=builder --chown=node:node /app/public ./public
52
- COPY --from=builder --chown=node:node /app/package.json ./package.json
53
- COPY --from=builder --chown=node:node /app/pnpm-lock.yaml ./pnpm-lock.yaml
54
 
55
- # Install production dependencies only
56
- USER node
57
  RUN pnpm install --prod
58
 
 
 
 
59
  # Set production environment
60
  ENV NODE_ENV=production
61
  ENV PORT=7860
62
- ENV SERVER_PLATFORM=node
63
 
64
  EXPOSE 7860
65
 
66
- # Create a simple Express server entry point
67
  RUN echo 'const express = require("express");' > server.js && \
68
- echo 'const { createRequestHandler } = require("@remix-run/express");' >> server.js && \
69
  echo 'const app = express();' >> server.js && \
70
  echo 'app.use(express.static("public"));' >> server.js && \
71
- echo 'app.all("*", createRequestHandler({ build: require("./build") }));' >> server.js && \
 
 
72
  echo 'app.listen(process.env.PORT, () => console.log(`Server running on port ${process.env.PORT}`));' >> server.js
73
 
74
- # Start the Express server
75
  CMD ["node", "server.js"]
 
1
+ FROM node:20.18.0
 
2
 
 
 
 
 
 
 
 
3
  WORKDIR /app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
+ # Install pnpm
 
 
 
 
 
 
 
 
 
 
 
 
6
  RUN corepack enable pnpm
7
 
8
+ # Copy package files
9
+ COPY package.json pnpm-lock.yaml ./
 
 
 
10
 
11
+ # Install dependencies
 
12
  RUN pnpm install --prod
13
 
14
+ # Copy the rest of the application
15
+ COPY . .
16
+
17
  # Set production environment
18
  ENV NODE_ENV=production
19
  ENV PORT=7860
 
20
 
21
  EXPOSE 7860
22
 
23
+ # Create a simple static file server
24
  RUN echo 'const express = require("express");' > server.js && \
25
+ echo 'const path = require("path");' >> server.js && \
26
  echo 'const app = express();' >> server.js && \
27
  echo 'app.use(express.static("public"));' >> server.js && \
28
+ echo 'app.get("*", (req, res) => {' >> server.js && \
29
+ echo ' res.sendFile(path.join(__dirname, "public", "index.html"));' >> server.js && \
30
+ echo '});' >> server.js && \
31
  echo 'app.listen(process.env.PORT, () => console.log(`Server running on port ${process.env.PORT}`));' >> server.js
32
 
33
+ # Start the server
34
  CMD ["node", "server.js"]
README.md CHANGED
@@ -3,8 +3,7 @@ title: Bolt DIY Assistant
3
  emoji: ⚡
4
  colorFrom: blue
5
  colorTo: indigo
6
- sdk: docker
7
- app_port: 7860
8
  pinned: false
9
  ---
10
 
 
3
  emoji: ⚡
4
  colorFrom: blue
5
  colorTo: indigo
6
+ sdk: static
 
7
  pinned: false
8
  ---
9