1
- # Basic Node.js Dockerfile
2
- FROM node:20-slim
1
+ # Build stage
2
+ FROM node:20-slim AS builder
3
3
4
- WORKDIR /usr/src/ app
4
+ WORKDIR /app
5
5
6
- # Install dependencies
7
- COPY package*.json ./
8
- RUN npm ci --only=production
6
+ # Copy package files first for better layer caching
7
+ COPY package.json package-lock.json ./
9
8
10
- # Copy application code
11
- COPY dist ./dist
12
- COPY src ./src
9
+ # Install all dependencies including dev dependencies for building
10
+ # --ignore-scripts prevents the prepare script from running prematurely
11
+ RUN npm ci --ignore-scripts
13
12
14
- # Define environment variables (can be overridden)
13
+ # Copy all source files
14
+ COPY . .
15
+
16
+ # Build the TypeScript source code manually instead of using the npm script
17
+ RUN npx tsc && npx shx chmod +x dist/*.js 2>/dev/null || echo "No executable JS files found"
18
+
19
+ # Production stage
20
+ FROM node:18-alpine
21
+
22
+ # Set the working directory
23
+ WORKDIR /app
24
+
25
+ # Copy package files
26
+ COPY package.json package-lock.json ./
27
+
28
+ # Install only production dependencies
29
+ # --ignore-scripts prevents the prepare script from running
30
+ RUN npm ci --omit=dev --ignore-scripts
31
+
32
+ # Copy built files from builder stage
33
+ COPY --from=builder /app/dist /app/dist
34
+ COPY --from=builder /app/cli.js /app/cli.js
35
+ COPY --from=builder /app/index.js /app/index.js
36
+ COPY --from=builder /app/index.d.ts /app/index.d.ts
37
+ COPY --from=builder /app/config.d.ts /app/config.d.ts
38
+
39
+ # Define environment variables (will be provided by Smithery)
15
40
ENV NODE_ENV=production
16
- # ENV BROWSERBASE_API_KEY=your_api_key
17
- # ENV BROWSERBASE_PROJECT_ID=your_project_id
18
41
19
- # Expose a default port (useful if deploying as a service, though stdio is used now )
20
- EXPOSE 8080
42
+ # Expose a default port (useful if deploying as a service)
43
+ EXPOSE 8931
21
44
22
- CMD [ "node" , "dist/index.js" ]
45
+ # Command to run the application
46
+ CMD [ "node" , "cli.js" , "--port" , "8931" ]
0 commit comments