| # Use the official Node.js image based on Debian Bullseye Slim as the base image | |
| FROM node:18-bullseye-slim | |
| # Update the package list and install git | |
| RUN apt-get update && \ | |
| apt-get install -y git | |
| # Clone the repository from the provided GitHub URL into the /app directory | |
| RUN git clone https://github.com/cg-dot/oai-reverse-proxy.git /app | |
| # Set the working directory to /app | |
| WORKDIR /app | |
| # Change ownership of the /app directory to user with UID 1000 and group with GID 1000 | |
| RUN chown -R 1000:1000 /app | |
| # Switch to the user with UID 1000 | |
| USER 1000 | |
| # Install npm dependencies | |
| RUN npm install | |
| # Copy the Dockerfile, greeting.md, and any .env files to the current working directory | |
| COPY Dockerfile greeting.md* .env* ./ | |
| # Run the build script defined in package.json | |
| RUN npm run build | |
| # Expose port 7860 to the outside world | |
| EXPOSE 7860 | |
| # Set environment variable NODE_ENV to production | |
| ENV NODE_ENV=production | |
| # Set Node.js options to limit the old space (heap) size | |
| ENV NODE_OPTIONS="--max-old-space-size=12882" | |
| # Define the command to start the application | |
| CMD [ "npm", "start" ] |