mirror of
https://github.com/jetkvm/cloud-api.git
synced 2025-09-16 08:38:15 +00:00
feat(dev): added Dockerfile with multistage build and compose file
This commit is contained in:
parent
91ef5e6424
commit
d40c4d9025
10
Dockerfile
10
Dockerfile
@ -1,12 +1,9 @@
|
|||||||
# Base Stage
|
# Base Stage
|
||||||
FROM node:21.1.0-alpine AS base
|
FROM node:21.1.0-alpine AS base
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN apk add --no-cache libc6-compat
|
|
||||||
|
|
||||||
COPY package.json package-lock.json ./
|
COPY package.json package-lock.json ./
|
||||||
|
|
||||||
|
# Deps Stage
|
||||||
FROM base AS deps
|
FROM base AS deps
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
@ -15,14 +12,11 @@ FROM deps AS dev
|
|||||||
COPY . .
|
COPY . .
|
||||||
RUN npx prisma generate
|
RUN npx prisma generate
|
||||||
RUN npm run build:prod
|
RUN npm run build:prod
|
||||||
|
|
||||||
CMD ["sh", "-c", "npm run dev"]
|
CMD ["sh", "-c", "npm run dev"]
|
||||||
|
|
||||||
# Production Stage
|
# Production Stage
|
||||||
FROM node:21.1.0-alpine AS prod
|
FROM node:21.1.0-alpine AS prod
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY --from=dev /app/dist ./dist
|
COPY --from=dev /app/dist ./dist
|
||||||
COPY --from=dev /app/prisma ./prisma
|
COPY --from=dev /app/prisma ./prisma
|
||||||
COPY --from=dev /app/package.json ./
|
COPY --from=dev /app/package.json ./
|
||||||
@ -30,8 +24,6 @@ COPY --from=dev /app/package-lock.json ./
|
|||||||
|
|
||||||
# Install only production dependencies
|
# Install only production dependencies
|
||||||
RUN npm ci --omit=dev
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
USER node
|
USER node
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
CMD ["node", "./dist/index.js"]
|
CMD ["node", "./dist/index.js"]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user