Skip to content

Commit 959ba1f

Browse files
authored
Merge pull request #3 from Linked-API/chore/docker-image
Better docker build
2 parents e40c69a + 1eb12c3 commit 959ba1f

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

Dockerfile

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,39 @@
1-
FROM node:20-alpine AS builder
1+
FROM node:20-slim AS deps
22
WORKDIR /app
33

4-
COPY package.json package-lock.json ./
5-
RUN npm ci
4+
# Copy package files
5+
COPY package.json package-lock.json* ./
66

7+
# Install production dependencies only
8+
RUN npm ci --omit=dev --legacy-peer-deps --ignore-scripts
9+
10+
FROM node:20-slim AS builder
11+
WORKDIR /app
12+
13+
# Copy package files
14+
COPY package.json package-lock.json* ./
15+
16+
# Install all dependencies (including dev)
17+
RUN HUSKY=0 npm ci --legacy-peer-deps
18+
19+
# Copy sources and build
720
COPY tsconfig.json ./
821
COPY src ./src
922
COPY README.md ./README.md
1023
RUN npm run build
1124

12-
FROM node:20-alpine AS runner
25+
FROM node:20-slim AS runner
1326
ENV NODE_ENV=production
1427
WORKDIR /app
1528

16-
COPY package.json package-lock.json ./
17-
RUN npm ci --omit=dev --ignore-scripts
29+
# Copy production node_modules and built app
30+
COPY --from=deps /app/node_modules ./node_modules
1831
COPY --from=builder /app/dist ./dist
32+
COPY --from=builder /app/package.json ./
1933

2034
ENV HOST=0.0.0.0 \
2135
PORT=3000
2236

2337
EXPOSE 3000
2438

2539
CMD ["node", "dist/index.js", "--http"]
26-
27-

0 commit comments

Comments
 (0)