Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 14 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,39 +1,36 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/amd64 node:18.15.0-alpine as builder
RUN apk add --update --no-cache openssl
USER node
WORKDIR /tmp/build/app

COPY --chown=node:node package.json ./
COPY --chown=node:node yarn.lock ./
COPY package.json ./
COPY yarn.lock ./
RUN yarn install
COPY --chown=node:node prisma ./prisma/
COPY prisma ./prisma/
RUN yarn prisma generate
COPY --chown=node:node tsconfig.json ./
COPY --chown=node:node tsconfig.build.json ./
COPY --chown=node:node src ./src
COPY tsconfig.json ./
COPY tsconfig.build.json ./
COPY src ./src
RUN yarn build

FROM --platform=linux/amd64 node:18.15.0-alpine as ts-node-module-prod
RUN apk add --update --no-cache openssl
USER node
WORKDIR /usr/src/app

COPY --chown=node:node --from=builder /tmp/build/app/package.json ./
COPY --chown=node:node --from=builder /tmp/build/app/yarn.lock ./
COPY --from=builder /tmp/build/app/package.json ./
COPY --from=builder /tmp/build/app/yarn.lock ./
RUN yarn install --frozen-lockfile --production
COPY --chown=node:node --from=builder /tmp/build/app/node_modules/@prisma ./node_modules/@prisma
COPY --chown=node:node --from=builder /tmp/build/app/node_modules/.prisma ./node_modules/.prisma
COPY --from=builder /tmp/build/app/node_modules/@prisma ./node_modules/@prisma
COPY --from=builder /tmp/build/app/node_modules/.prisma ./node_modules/.prisma

FROM --platform=linux/amd64 node:18.15.0-alpine
RUN apk add --update --no-cache openssl
USER node
WORKDIR /usr/src/app
COPY --chown=node:node --from=builder /tmp/build/app/package.json ./
COPY --chown=node:node --from=ts-node-module-prod /usr/src/app/node_modules ./node_modules
COPY --chown=node:node --from=builder /tmp/build/app/prisma ./prisma
COPY --from=builder /tmp/build/app/package.json ./
COPY --from=ts-node-module-prod /usr/src/app/node_modules ./node_modules
COPY --from=builder /tmp/build/app/prisma ./prisma

COPY --chown=node:node --from=builder /tmp/build/app/dist ./
COPY --from=builder /tmp/build/app/dist ./

EXPOSE 3000
CMD ["main.js"]