From dde591049f9da378b3561f1996842d9243152051 Mon Sep 17 00:00:00 2001 From: Kshitij Date: Tue, 22 Jul 2025 13:25:54 +0530 Subject: [PATCH] Added dockerfile and dockerignore for backend. --- Backend/.dockerignore | 3 +++ Backend/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 Backend/.dockerignore create mode 100644 Backend/Dockerfile diff --git a/Backend/.dockerignore b/Backend/.dockerignore new file mode 100644 index 0000000..6b6d40e --- /dev/null +++ b/Backend/.dockerignore @@ -0,0 +1,3 @@ +node_modules/ +package-lock.json +Dockerfile diff --git a/Backend/Dockerfile b/Backend/Dockerfile new file mode 100644 index 0000000..6874166 --- /dev/null +++ b/Backend/Dockerfile @@ -0,0 +1,34 @@ +# Base image +FROM node:22 + +# Metadata +LABEL maintainer="kshitijka" +LABEL version=1.1.0 +LABEL description="Crop Compass is a centralized management dashboard designed for farmers, enabling them to efficiently oversee their farms while leveraging advanced AI technology for disease identification and more." + +# Update and upgrade +RUN apt update && apt upgrade -y && \ + apt clean all && \ + rm -rf /var/lib/apt/lists/* + +# Create non-root user +RUN useradd -s /bin/bash nonroot + +# Create working directory +RUN mkdir -p /app +RUN chown -R nonroot:nonroot /app +WORKDIR /app +COPY . . + +# Generate a random hex token and write it to .env +RUN echo "REFRESH_TOKEN_SECRET=$(openssl rand -hex 32)" >> /app/.env +RUN npm install + +# Switch user +USER nonroot + +# Expose backend port +EXPOSE 8000 + +# Run backend +CMD ["node", "index.js"]