# Dockerfile # Use an official Node.js runtime as the base image FROM node:18 USER 1000 ENV PUPPETEER_SKIP_DOWNLOAD=True RUN apt-get update \ && apt-get install -y fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/*; RUN apt-get update \ && apt-get update \ && apt-get install -y chromium \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/*; # Set the working directory in the container 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 # 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"]