fix: standalone tsconfig and Dockerfile for monorepo split
This commit is contained in:
11
Dockerfile
11
Dockerfile
@@ -1,19 +1,25 @@
|
|||||||
FROM node:20-alpine AS builder
|
FROM node:20-alpine AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY package.json package-lock.json* ./
|
COPY package.json package-lock.json* ./
|
||||||
COPY packages/shared/package.json ./packages/shared/
|
COPY packages/shared/package.json ./packages/shared/
|
||||||
COPY packages/db/package.json ./packages/db/
|
COPY packages/db/package.json ./packages/db/
|
||||||
RUN npm install --ignore-scripts && npm rebuild bcrypt
|
RUN npm install --ignore-scripts && npm rebuild bcrypt
|
||||||
|
|
||||||
COPY packages/shared/ ./packages/shared/
|
COPY packages/shared/ ./packages/shared/
|
||||||
COPY packages/db/ ./packages/db/
|
COPY packages/db/ ./packages/db/
|
||||||
COPY . .
|
COPY nest-cli.json ./
|
||||||
RUN cd packages/shared && npx tsc --module commonjs --moduleResolution node --outDir dist --declaration
|
COPY tsconfig.json ./
|
||||||
|
COPY src/ ./src/
|
||||||
|
|
||||||
|
RUN cd packages/shared && npx tsc --outDir dist --declaration
|
||||||
RUN cd packages/db && npx prisma generate
|
RUN cd packages/db && npx prisma generate
|
||||||
RUN npx nest build
|
RUN npx nest build
|
||||||
|
|
||||||
FROM node:20-alpine AS runner
|
FROM node:20-alpine AS runner
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk add --no-cache dumb-init
|
RUN apk add --no-cache dumb-init
|
||||||
|
|
||||||
COPY --from=builder /app/node_modules ./node_modules
|
COPY --from=builder /app/node_modules ./node_modules
|
||||||
COPY --from=builder /app/dist ./dist
|
COPY --from=builder /app/dist ./dist
|
||||||
COPY --from=builder /app/packages/shared/dist ./packages/shared/dist
|
COPY --from=builder /app/packages/shared/dist ./packages/shared/dist
|
||||||
@@ -22,6 +28,7 @@ RUN node -e "const p=require('./packages/shared/package.json');p.main='./dist/in
|
|||||||
COPY --from=builder /app/packages/db/prisma ./packages/db/prisma
|
COPY --from=builder /app/packages/db/prisma ./packages/db/prisma
|
||||||
COPY --from=builder /app/packages/db/package.json ./packages/db/
|
COPY --from=builder /app/packages/db/package.json ./packages/db/
|
||||||
COPY --from=builder /app/packages/db/src ./packages/db/src
|
COPY --from=builder /app/packages/db/src ./packages/db/src
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
EXPOSE 3001
|
EXPOSE 3001
|
||||||
ENTRYPOINT ["dumb-init", "--"]
|
ENTRYPOINT ["dumb-init", "--"]
|
||||||
|
|||||||
@@ -1,8 +1,20 @@
|
|||||||
{
|
{
|
||||||
"extends": "../../tsconfig.base.json",
|
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
|
"target": "ES2022",
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"lib": ["ES2022"],
|
||||||
|
"strict": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"declaration": true,
|
||||||
|
"sourceMap": true,
|
||||||
"outDir": "./dist",
|
"outDir": "./dist",
|
||||||
"rootDir": "./src"
|
"rootDir": "./src"
|
||||||
},
|
},
|
||||||
"include": ["src"]
|
"include": ["src"],
|
||||||
|
"exclude": ["node_modules", "dist"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user