|
|
FROM node:20-slim |
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
wget gnupg ca-certificates fonts-liberation libappindicator3-1 libasound2 \ |
|
|
libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \ |
|
|
libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 \ |
|
|
libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 \ |
|
|
libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \ |
|
|
libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release \ |
|
|
xdg-utils libdrm2 unzip xvfb \ |
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
WORKDIR /app |
|
|
COPY package*.json ./ |
|
|
RUN npm install |
|
|
COPY . . |
|
|
|
|
|
RUN npx puppeteer browsers install chrome |
|
|
|
|
|
|
|
|
RUN export CHROME_BIN=$(find /root/.cache/puppeteer/chrome -type f -name chrome | head -n 1) && \ |
|
|
echo "Chrome binary path: $CHROME_BIN" && \ |
|
|
echo "export CHROME_PATH=$CHROME_BIN" >> /root/.bashrc && \ |
|
|
echo "CHROME_PATH=$CHROME_BIN" >> /etc/environment && \ |
|
|
ln -sf $CHROME_BIN /usr/bin/chrome |
|
|
|
|
|
ENV CHROME_PATH=/usr/bin/chrome |
|
|
ENV PORT=7860 |
|
|
EXPOSE 7860 |
|
|
|
|
|
CMD xvfb-run --server-args="-screen 0 1280x720x24" node app.js |