Skip to content

Commit 16ff57d

Browse files
committed
fix: build shared package in Docker, add .js extensions
1 parent 2c5deed commit 16ff57d

3 files changed

Lines changed: 58 additions & 5 deletions

File tree

docker/backend.Dockerfile

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# syntax=docker/dockerfile:1
2+
3+
FROM node:20-alpine AS builder
4+
5+
WORKDIR /app
6+
7+
COPY packages/shared/package*.json ./packages/shared/
8+
COPY apps/backend/package*.json ./apps/backend/
9+
COPY apps/backend/prisma ./apps/backend/prisma
10+
COPY packages/shared ./packages/shared
11+
12+
# Build shared package first
13+
WORKDIR /app/packages/shared
14+
RUN --mount=type=cache,target=/root/.npm \
15+
npm ci --cache /root/.npm
16+
RUN npm run build
17+
18+
# Install and build backend
19+
WORKDIR /app/apps/backend
20+
RUN --mount=type=cache,target=/root/.npm \
21+
npm ci --cache /root/.npm
22+
23+
COPY apps/backend ./
24+
25+
RUN npm run build
26+
27+
FROM node:20-alpine AS runner
28+
29+
WORKDIR /app
30+
31+
ENV NODE_ENV=production
32+
33+
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
34+
35+
# Copy shared package (compiled dist + package.json only)
36+
COPY --from=builder /app/packages/shared/package.json ./packages/shared/
37+
COPY --from=builder /app/packages/shared/dist ./packages/shared/dist
38+
39+
COPY --from=builder /app/apps/backend/package*.json ./apps/backend/
40+
COPY --from=builder /app/apps/backend/node_modules ./apps/backend/node_modules
41+
COPY --from=builder /app/apps/backend/dist ./apps/backend/dist
42+
COPY --from=builder /app/apps/backend/prisma ./apps/backend/prisma
43+
44+
RUN chown -R appuser:appgroup /app
45+
46+
USER appuser
47+
48+
EXPOSE 3000
49+
50+
WORKDIR /app/apps/backend
51+
52+
CMD ["node", "dist/server.js"]

packages/shared/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
"version": "1.0.0",
44
"private": true,
55
"type": "module",
6-
"main": "./src/index.ts",
7-
"types": "./src/index.ts",
6+
"main": "./dist/index.js",
7+
"types": "./dist/index.d.ts",
88
"scripts": {
9+
"build": "tsc",
910
"lint": "eslint src/",
1011
"typecheck": "tsc --noEmit",
1112
"test": "vitest run"

packages/shared/src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export * from './platforms';
2-
export * from './types';
3-
export * from './cards';
1+
export * from './platforms.js';
2+
export * from './types.js';
3+
export * from './cards.js';

0 commit comments

Comments
 (0)