Advertisement
Guest User

Puppeteer dockerfile

a guest
Mar 19th, 2018
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.09 KB | None | 0 0
  1. FROM node:8-slim
  2.  
  3. # See https://crbug.com/795759
  4. RUN apt-get update && apt-get install -yq libgconf-2-4
  5.  
  6. # Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others)
  7. # Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer
  8. # installs, work.
  9. RUN apt-get update && apt-get install -y wget --no-install-recommends \
  10.     && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
  11.     && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
  12.     && apt-get update \
  13.     && apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst ttf-freefont \
  14.       --no-install-recommends \
  15.     && rm -rf /var/lib/apt/lists/* \
  16.     && apt-get purge --auto-remove -y curl \
  17.     && rm -rf /src/*.deb
  18.  
  19. # It's a good idea to use dumb-init to help prevent zombie chrome processes.
  20. ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 /usr/local/bin/dumb-init
  21. RUN chmod +x /usr/local/bin/dumb-init
  22.  
  23. # Uncomment to skip the chromium download when installing puppeteer. If you do,
  24. # you'll need to launch puppeteer with:
  25. #     browser.launch({executablePath: 'google-chrome-unstable'})
  26. # ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
  27.  
  28. # Node express app configuration
  29. WORKDIR /usr/src/app
  30.  
  31. # Add user so we don't need --no-sandbox.
  32. RUN groupadd -r pptruser && useradd -r -g pptruser -G audio,video pptruser \
  33.     && mkdir -p /home/pptruser/Downloads \
  34.     && chown -R pptruser:pptruser /home/pptruser \
  35.     && chown -R pptruser:pptruser /usr/src/app
  36.  
  37. # Run everything after as non-privileged user.
  38. USER pptruser
  39.  
  40. # Install app dependencies
  41. # A wildcard is used to ensure both package.json AND package-lock.json are copied
  42. COPY package*.json ./
  43.  
  44. # If you are building your code for production
  45. RUN npm install --only=production
  46.  
  47. # Bundle app source
  48. COPY . .
  49.  
  50. EXPOSE 3000
  51.  
  52. ENTRYPOINT ["dumb-init", "--"]
  53. CMD [ "npm", "start" ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement