-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathback.Dockerfile
32 lines (27 loc) · 1.29 KB
/
back.Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Step 1: Build the application
FROM coredin/base:latest AS builder
RUN yarn workspace @coredin/backend prepare
RUN yarn workspace @coredin/backend build
# Step 2: Set up the production environment
FROM node:22.10-alpine3.20
# Step 3: Copy
COPY --from=builder coredin/packages/backend/dist app/packages/backend/dist
COPY --from=builder coredin/packages/backend/config app/packages/backend/config
COPY --from=builder coredin/packages/backend/db app/packages/backend/db
COPY --from=builder coredin/packages/backend/package.json app/packages/backend
COPY --from=builder coredin/packages/backend/tsconfig.json app/packages/backend
COPY --from=builder coredin/packages/shared/dist app/packages/shared/dist
COPY --from=builder coredin/packages/shared/package.json app/packages/shared
COPY --from=builder coredin/package.json app/
COPY --from=builder coredin/yarn.lock app/
COPY --from=builder coredin/.yarnrc.yml app/
COPY --from=builder coredin/.yarn app/.yarn
# Step 4: Install deps required for prod (nestJs build doesn't include them)
WORKDIR /app
RUN yarn workspaces focus @coredin/backend --production
# Step 5: Install curl required for health check
RUN apk add --no-cache curl
# Step 6: Execute pending migrations and run app
EXPOSE 3000
WORKDIR /app/packages/backend
CMD yarn typeorm:migrate && node dist/main.js