Puppeteer 应用容器化

作者: 天天向上卡索 | 来源:发表于2018-11-30 17:21 被阅读4次

Puppeteer 应用容器化

Intro

Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。
更多的介绍,可以参考这里

项目中使用到了 Puppeteer 来做一些爬虫项目,最后需要把应用容器化部署在 docker 上,于是就有了这篇文章。

自定义 docker image

谷歌官方还没有推出一个官方的 docker 镜像,Github上有一个 issue,有需要的话可以关注下,但是官方有一个 dockerfile 示例

参见官方文档: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-in-docker

于是自己在官方的 dockerfile 基础上加以修改,制作了一个 image,docker hub 镜像地址:https://hub.docker.com/r/weihanli/puppeteer/

Dockerfile 内容详见: https://github.com/WeihanLi/docker-env/blob/master/docker-puppeteer/Dockerfile

怎么使用

  • 在 docker-compose 中使用

    示例 docker-compose 文件:

    version: '2'
    services:
      puppeteer-crawler:
        image: weihanli/puppeteer:latest
        container_name:  puppeteer-crawler
        ports:
          - 10240:3000
        volumes:
          - ./src:/app
    

    我的项目结构是这样的

    - src (具体的项目代码)
    Dockerfile
    docker-compose.yml
    
  • 基于此镜像构建新的镜像

    示例 Dockerfile:

    FROM weihanli/puppeteer:latest
    
    COPY --chown=pptruser:pptruser ./src .
    
    EXPOSE 3000
    

    这里指定了 --chown=pptruser:pptruser 是因为官方建议不用使用 root 用户,新建了一个 pptruser 的用户组以及用户,使用pptruser这个用户去执行要执行的代码,这里是为了防止出现用户权限相关问题。

如果可以使用 docker-compose 的话,建议还是使用 docker-compose

docker 镜像启动之后默认执行的命令是 yarn start,你只需要在 app 目录下可以执行 npm run start 或者 yarn start 都是可以的,当然你也可以自定义要执行的命令来覆盖默认的 Command 命令

Reference

End

最后如果你在考虑容器化一个 Puppeteer 应用,希望你可以使用这个镜像,如果有什么问题也欢迎和我联系,我会尽我所能去解决问题。

相关文章

  • Puppeteer 应用容器化

    Puppeteer 应用容器化 Intro Puppeteer是谷歌官方出品的一个通过DevTools协议控制he...

  • Dockerfile应用容器化

    应用容器化 容器是为应用而生!具体来说,容器能够简化应用的构建、部署和运行过程。 容器化步骤 完整的应用容器化过程...

  • Docker学习(8) 应用的容器化

    Docker学习(8) 应用的容器化 容器化:将应用整合到容器中并且运行起来的过程。 应用的容器化——简介 容器可...

  • .NET Core+MySql+Nginx 容器化部署

    .NET Core容器化@Docker.NET Core容器化之多容器应用部署@Docker-Compose.NE...

  • .NET Core容器化之多容器应用部署@Docker-Comp

    .NET Core容器化@Docker.NET Core容器化之多容器应用部署@Docker-Compose.NE...

  • 应用容器化

    应用程序通常是指将一系列包和配置文件的部署成一个实时可运行的环境。 应用程序通常是指一系列运行在操作系统中的服务,...

  • 【K8s 精选】Kubernetes 简介

    1 什么是 Kubernetes Kubernetes 是一个开源的、用于管理多主机上的容器化应用,使得容器化应用...

  • 2022-08-29 kubernetes介绍

    应用部署方式演变 传统部署---->虚拟化部署---->容器化部署 容器化部署出现的问题 1、一个容器故障停机了,...

  • Docker的Dockerfile

    Dockerfile 配置容器化应用 • MariaDB:• 命令行选项• 配置文件• 容器化方式运行MariaD...

  • Docker容器可视化监控中心搭建

    概述 一个宿主机上可以运行多个容器化应用,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用...

网友评论

    本文标题:Puppeteer 应用容器化

    本文链接:https://www.haomeiwen.com/subject/oabhcqtx.html