1
0
Code Issues Pull Requests Actions Packages Projects Releases Wiki Activity Security Code Quality

Improve docker file

This commit is contained in:
2025-07-10 11:14:07 +07:00
parent ec6f0871b4
commit 2f9f05d638
4 changed files with 53 additions and 6 deletions

3
.dockerignore Normal file
View File

@@ -0,0 +1,3 @@
.git
.next
node_modules

32
Dockerfile Normal file
View File

@@ -0,0 +1,32 @@
# Stage 1: Build
FROM node:18-slim AS builder
WORKDIR /app
# Copy dependencies first to cache better
COPY package.json package-lock.json ./
RUN npm install
# Copy all source code
COPY . .
# Build the Next.js app
RUN npm run build
# Stage 2: Run production image
FROM node:18-slim
WORKDIR /app
COPY --from=builder /app/package.json /app/package-lock.json ./
RUN npm install --omit=dev
COPY --from=builder /app/.next .next
COPY --from=builder /app/public public
COPY --from=builder /app/next.config.ts ./
COPY --from=builder /app/src src
EXPOSE 3000
CMD ["npx", "next", "start"]

12
docker-compose.yaml Normal file
View File

@@ -0,0 +1,12 @@
version: "3.9"
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: cosmos-crm
ports:
- "3000:3000"
environment:
- JWT_SECRET=8f2e9c4a7b1d6e3f8a5b2c9e6f1a4d7b8e3f6a9c2d5e8b1f4a7c0e3d6f9b2a5c8

View File

@@ -3,14 +3,14 @@ import { db } from "@/database/database";
export async function GET(
request: NextRequest,
{ params }: { params: { id: string } }
{ params }: { params: Promise<{ id: string }> }
) {
try {
// Initialize database
await db.read();
// Parse dependant ID from params
const dependantId = parseInt(params.id);
const dependantId = parseInt((await params).id);
if (isNaN(dependantId)) {
return NextResponse.json(
@@ -61,14 +61,14 @@ export async function GET(
export async function PUT(
request: NextRequest,
{ params }: { params: { id: string } }
{ params }: { params: Promise<{ id: string }> }
) {
try {
// Initialize database
await db.read();
// Parse dependant ID from params
const dependantId = parseInt(params.id);
const dependantId = parseInt((await params).id);
if (isNaN(dependantId)) {
return NextResponse.json(
@@ -141,14 +141,14 @@ export async function PUT(
export async function DELETE(
request: NextRequest,
{ params }: { params: { id: string } }
{ params }: { params: Promise<{ id: string }> }
) {
try {
// Initialize database
await db.read();
// Parse dependant ID from params
const dependantId = parseInt(params.id);
const dependantId = parseInt((await params).id);
if (isNaN(dependantId)) {
return NextResponse.json(