# Dockerfile # Use an official Node.js runtime as the base image FROM node:18 USER root ENV PUPPETEER_SKIP_DOWNLOAD=True # Set the working directory in the container RUN apt-get update RUN apt-get install chromium -y USER 1000 WORKDIR /usr/src/app # Copy package.json and package-lock.json to the container COPY --chown=1000 package.json package-lock.json ./ # Install dependencies RUN npm install --include=optional sharp # Copy the rest of the application files to the container COPY --chown=1000 . . RUN chmod +x entrypoint.sh # Expose the application port (assuming your app runs on port 3000) EXPOSE 3000 # Create symlink # RUN mkdir -p ./static/data && ln -s /data/uploads ./static/data/uploads # Start the application ENTRYPOINT ["/usr/src/app/entrypoint.sh"]