Skip to content

Commit 037463e

Browse files
committed
ported Dockerfiles
1 parent f1cd70b commit 037463e

6 files changed

Lines changed: 51 additions & 118 deletions

File tree

apps/queue/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@courselit/queue",
33
"version": "0.25.3",
44
"private": true,
5-
"packageManager": "yarn@3.2.0",
5+
"packageManager": "pnpm@9.14.2",
66
"scripts": {
77
"build": "tsup",
88
"tsc:build": "tsc",
@@ -18,8 +18,8 @@
1818
"bullmq": "^4.14.0",
1919
"express": "^4.18.2",
2020
"liquidjs": "^10.11.1",
21-
"mongodb": "^6.12.0",
22-
"mongoose": "^8.0.0",
21+
"mongodb": "^6.15.0",
22+
"mongoose": "^8.13.1",
2323
"nodemailer": "^6.9.2",
2424
"pino": "^8.14.1",
2525
"pino-mongodb": "^4.3.0",

apps/web/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
"graphql-type-json": "^0.3.2",
5252
"lodash.debounce": "^4.0.8",
5353
"lucide-react": "^0.475.0",
54-
"mongodb": "^6.14.2",
55-
"mongoose": "^8.12.1",
54+
"mongodb": "^6.15.0",
55+
"mongoose": "^8.13.1",
5656
"next": "^14.2.4",
5757
"next-auth": "5.0.0-beta.19",
5858
"nodemailer": "^6.7.2",

packages/common-logic/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@
4444
"dependencies": {
4545
"@courselit/common-models": "workspace:^",
4646
"@courselit/utils": "workspace:^",
47-
"mongoose": "^7.6.3"
47+
"mongoose": "^8.13.1"
4848
}
4949
}

pnpm-lock.yaml

Lines changed: 4 additions & 66 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/app/Dockerfile

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
FROM node:22-alpine AS base
22

3+
# Install pnpm in base image
4+
RUN corepack enable pnpm
5+
36
# Install dependencies only when needed
47
FROM base AS deps
58
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
69
RUN apk add --no-cache libc6-compat
710
WORKDIR /app
811

9-
# copy yarn specific files
12+
# copy pnpm specific files
1013
COPY package.json /app/package.json
11-
COPY .yarn /app/.yarn
12-
COPY yarn.lock /app/yarn.lock
13-
COPY .yarnrc.yml /app/.yarnrc.yml
14+
COPY pnpm-lock.yaml /app/pnpm-lock.yaml
15+
COPY pnpm-workspace.yaml /app/pnpm-workspace.yaml
1416

1517
# copy project related files
1618
COPY packages/icons /app/packages/icons
@@ -26,23 +28,23 @@ COPY packages/utils /app/packages/utils
2628
COPY apps/web /app/apps/web
2729

2830
# Install dependencies based on the preferred package manager
29-
RUN corepack enable yarn
30-
RUN yarn install;
31+
RUN pnpm install
3132

32-
FROM base as builder
33+
FROM base AS builder
3334
WORKDIR /app
3435

3536
COPY --from=deps /app/ ./
3637

3738
# Build all workspaces
38-
RUN yarn run build
39+
RUN pnpm run build
3940

4041
# Production image
41-
FROM base as runner
42+
FROM base AS runner
4243
WORKDIR /app
4344

44-
ENV NODE_ENV production
45-
ENV NEXT_TELEMETRY_DISABLED 1
45+
ENV NODE_ENV=production
46+
ENV NEXT_TELEMETRY_DISABLED=1
47+
ENV HOSTNAME=0.0.0.0
4648

4749
RUN addgroup --system --gid 1001 nodejs
4850
RUN adduser --system --uid 1001 nextjs
@@ -58,6 +60,6 @@ COPY --from=builder --chown=nextjs:nodejs /app/apps/web/next.config.js ./
5860

5961
USER nextjs
6062

61-
ENV PORT ${PORT:-3000}
63+
ENV PORT=${PORT:-3000}
6264

63-
CMD HOSTNAME="0.0.0.0" node apps/web/server.js
65+
CMD ["node", "apps/web/server.js"]

services/queue/Dockerfile

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,39 @@
1-
FROM node:22-alpine AS builder
1+
FROM node:22-alpine AS base
2+
3+
# Install pnpm in base image
4+
RUN corepack enable pnpm
5+
6+
FROM base AS builder
27
WORKDIR /app
38

4-
# copy yarn specific files
5-
COPY package.json /app/package.json
6-
COPY .yarn /app/.yarn
7-
COPY yarn.lock /app/yarn.lock
8-
COPY .yarnrc.yml /app/.yarnrc.yml
9+
# copy pnpm specific files
10+
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
911

1012
# copy project related files
11-
COPY packages/tsconfig /app/packages/tsconfig
12-
COPY packages/common-models /app/packages/common-models
13-
COPY packages/common-logic /app/packages/common-logic
14-
COPY packages/utils /app/packages/utils
15-
COPY apps/queue /app/apps/queue
16-
17-
RUN cd /app && echo 'Yarn version in builder' && yarn --version
13+
COPY packages/tsconfig ./packages/tsconfig
14+
COPY packages/common-models ./packages/common-models
15+
COPY packages/common-logic ./packages/common-logic
16+
COPY packages/utils ./packages/utils
17+
COPY apps/queue ./apps/queue
1818

19-
# Build all workspaces
20-
RUN yarn rebuild
21-
RUN yarn build
19+
# Install dependencies and build
20+
RUN pnpm install --frozen-lockfile
21+
RUN pnpm build
2222

2323
# Production image
24-
FROM node:22-alpine AS runner
24+
FROM base AS runner
2525

26-
ENV NODE_ENV production
26+
ENV NODE_ENV=production
2727
WORKDIR /app
2828

29-
# copy yarn specific files
30-
COPY --from=builder /app/package.json ./package.json
31-
COPY --from=builder /app/.yarn ./.yarn
32-
COPY --from=builder /app/yarn.lock ./yarn.lock
33-
COPY --from=builder /app/.yarnrc.yml ./.yarnrc.yml
34-
35-
# copy project related files
36-
COPY --from=builder /app/packages/common-models/package.json ./packages/common-models/package.json
37-
COPY --from=builder /app/packages/common-models/dist ./packages/common-models/dist
38-
COPY --from=builder /app/packages/common-logic/package.json ./packages/common-logic/package.json
39-
COPY --from=builder /app/packages/common-logic/dist ./packages/common-logic/dist
40-
COPY --from=builder /app/packages/utils/package.json ./packages/utils/package.json
41-
COPY --from=builder /app/packages/utils/dist ./packages/utils/dist
29+
# Copy all necessary files
30+
COPY --from=builder /app/package.json ./
31+
COPY --from=builder /app/pnpm-lock.yaml ./
32+
COPY --from=builder /app/pnpm-workspace.yaml ./
33+
COPY --from=builder /app/packages ./packages
4234
COPY --from=builder /app/apps/queue ./apps/queue
4335

44-
RUN yarn workspaces focus --all --production
36+
# Install production dependencies
37+
RUN pnpm install --prod --frozen-lockfile --ignore-scripts
4538

46-
CMD [ "yarn", "workspace", "@courselit/queue", "start" ]
39+
CMD ["pnpm", "--filter", "@courselit/queue", "start"]

0 commit comments

Comments
 (0)