Skip to content

Instantly share code, notes, and snippets.

@xshot9011
Last active September 22, 2022 18:19
Show Gist options
  • Save xshot9011/7b259ac8e3c0fee5c4c1c97da1a76af7 to your computer and use it in GitHub Desktop.
Save xshot9011/7b259ac8e3c0fee5c4c1c97da1a76af7 to your computer and use it in GitHub Desktop.
NestJS Dockerfile
# ----------------------------------- Build ---------------------------------- #
FROM node:16.17-alpine as builder
WORKDIR /app
RUN apk add --no-cache g++ make python3
COPY package*.json yarn.lock /app/
RUN npm install --global [email protected] --force
RUN yarn install --frozen-lockfile
COPY . .
RUN yarn build
# ---------------------------------- Deploy ---------------------------------- #
FROM node:16.17-alpine as deploy
# (Optional) certificate
COPY certs/ /usr/local/share/ca-certificates/
ENV NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/rds-ca-2019-root.pem
RUN apk update && apk add ca-certificates && update-ca-certificates && npm install --global [email protected] --force
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nestjs -u 1001
# Copy your own necessary file
WORKDIR /app
COPY --from=builder --chown=nestjs:nodejs /app/yarn.lock /app/
COPY --from=builder --chown=nestjs:nodejs /app/package*.json /app/
COPY --from=builder --chown=nestjs:nodejs /app/tsconfig.json/ /app/
COPY --from=builder --chown=nestjs:nodejs /app/tsconfig.build.json/ /app/
COPY --from=builder --chown=nestjs:nodejs /app/dist/ /app/dist/
COPY --from=builder --chown=nestjs:nodejs /app/node_modules/ /app/node_modules/
USER nestjs
CMD [ "yarn", "start" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment