| FROM node:20 |
|
|
| RUN apt-get update && apt-get install -y \ |
| wget \ |
| gnupg \ |
| ca-certificates \ |
| procps \ |
| libxss1 \ |
| libasound2 \ |
| libatk-bridge2.0-0 \ |
| libgtk-3-0 \ |
| libgbm-dev \ |
| libnss3 \ |
| xvfb \ |
| fonts-liberation \ |
| libu2f-udev \ |
| xdg-utils \ |
| --no-install-recommends \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ |
| && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \ |
| && apt-get update \ |
| && apt-get install -y google-chrome-stable \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| WORKDIR /app |
|
|
| RUN mkdir -p /app/cache && chmod -R 777 /app/cache |
| RUN mkdir -p /app/.cache && chmod -R 777 /app/.cache |
|
|
| COPY package*.json ./ |
| RUN npm install |
|
|
| COPY . . |
| RUN chmod -R 777 /app |
|
|
| ENV CHROME_PATH="/usr/bin/google-chrome-stable" |
| ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true" |
| ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/google-chrome-stable" |
| ENV HEADLESS=true |
| ENV DISPLAY=:99 |
| ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true |
| ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable |
|
|
| HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ |
| CMD curl -f http://localhost:7860/ || exit 1 |
|
|
| EXPOSE 7860 |
|
|
| CMD Xvfb :99 -screen 0 1920x1080x24 > /dev/null 2>&1 & \ |
| export DISPLAY=:99 && \ |
| node index.js |