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