35 lines
820 B
Docker
35 lines
820 B
Docker
# 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"]
|