From 01de43652a9af2fde6e7c593913ca51ba6b18183 Mon Sep 17 00:00:00 2001 From: SahooBishwajeet Date: Thu, 1 May 2025 23:46:39 +0530 Subject: [PATCH] [Feat] [Done] [Bishwajeet] Docker support with Dockerfile and docker-compose.yml --- langsuit/.dockerignore | 14 ++++++++++++++ langsuit/Dockerfile | 30 ++++++++++++++++++++++++++++++ langsuit/docker-compose.yml | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 langsuit/.dockerignore create mode 100644 langsuit/Dockerfile create mode 100644 langsuit/docker-compose.yml diff --git a/langsuit/.dockerignore b/langsuit/.dockerignore new file mode 100644 index 0000000..e0eef86 --- /dev/null +++ b/langsuit/.dockerignore @@ -0,0 +1,14 @@ +.git +.gitignore +node_modules +npm-debug.log +README.md +.next +.env* +.vercel +coverage +.DS_Store +*.pem +dist +build +.vscode diff --git a/langsuit/Dockerfile b/langsuit/Dockerfile new file mode 100644 index 0000000..32ebab8 --- /dev/null +++ b/langsuit/Dockerfile @@ -0,0 +1,30 @@ +FROM node:18-alpine + +WORKDIR /app + +# Copy package files first to leverage Docker cache +COPY package*.json ./ + +# Install dependencies +RUN npm install + +# Copy the rest of the application code +COPY . . + +# Only set build-time args for NEXT_PUBLIC_ variables needed at build time +ARG NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY +ARG NEXT_PUBLIC_CLERK_SIGN_IN_URL +ARG NEXT_PUBLIC_CLERK_SIGN_UP_URL +ARG NEXT_PUBLIC_APP_URL + +ENV NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY} +ENV NEXT_PUBLIC_CLERK_SIGN_IN_URL=${NEXT_PUBLIC_CLERK_SIGN_IN_URL} +ENV NEXT_PUBLIC_CLERK_SIGN_UP_URL=${NEXT_PUBLIC_CLERK_SIGN_UP_URL} +ENV NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL} + +# Build the application +RUN npm run build + +EXPOSE 3000 + +CMD ["npm", "start"] diff --git a/langsuit/docker-compose.yml b/langsuit/docker-compose.yml new file mode 100644 index 0000000..24a2aea --- /dev/null +++ b/langsuit/docker-compose.yml @@ -0,0 +1,36 @@ +version: "3.8" + +services: + web: + build: + context: . + args: + - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY + - NEXT_PUBLIC_CLERK_SIGN_IN_URL + - NEXT_PUBLIC_CLERK_SIGN_UP_URL + - NEXT_PUBLIC_APP_URL + - ENVIRONMENT + ports: + - "3000:3000" + environment: + - DATABASE_URL + - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY + - CLERK_SECRET_KEY + - NEXT_PUBLIC_CLERK_SIGN_IN_URL + - NEXT_PUBLIC_CLERK_SIGN_UP_URL + - MONGODB_URI + - CLERK_ADMIN_IDS + - STRIPE_API_SECRET_KEY + - STRIPE_WEBHOOK_SECRET + - NEXT_PUBLIC_APP_URL + - REDIS_URL + - ENVIRONMENT + env_file: + - .env + restart: always + networks: + - app_network + +networks: + app_network: + driver: bridge