{"id":16795027,"url":"https://github.com/kingzez/docker-puppeteer","last_synced_at":"2025-03-17T03:11:52.101Z","repository":{"id":90695059,"uuid":"157738100","full_name":"kingzez/docker-puppeteer","owner":"kingzez","description":"Running Puppeteer in Docker for fu*king GFW inside use.","archived":false,"fork":false,"pushed_at":"2018-11-18T14:08:17.000Z","size":2,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T12:46:22.320Z","etag":null,"topics":["docker","dockerfile","firewall","fuckfirewall","puppepteer"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/wangzezhi/puppeteer/","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kingzez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-15T16:07:33.000Z","updated_at":"2023-05-12T16:52:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"4a58df41-7a85-4c4a-bb59-96341367dc9d","html_url":"https://github.com/kingzez/docker-puppeteer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingzez%2Fdocker-puppeteer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingzez%2Fdocker-puppeteer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingzez%2Fdocker-puppeteer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingzez%2Fdocker-puppeteer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kingzez","download_url":"https://codeload.github.com/kingzez/docker-puppeteer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243965780,"owners_count":20375917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dockerfile","firewall","fuckfirewall","puppepteer"],"created_at":"2024-10-13T09:15:12.617Z","updated_at":"2025-03-17T03:11:52.095Z","avatar_url":"https://github.com/kingzez.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Puppeteer\n\n[![Docker Automated build](https://img.shields.io/docker/automated/wangzezhi/puppeteer.svg)](https://hub.docker.com/r/wangzezhi/puppeteer/)\n![Docker Build Status](https://img.shields.io/docker/build/wangzezhi/puppeteer.svg?style=popout-square)\n![MicroBadger Size](https://img.shields.io/microbadger/image-size/wangzezhi/puppeteer.svg?style=popout-square)\n\nRunning Puppeteer in Docker for fu*king GFW inside use.\n\n[![nodesource/node](http://dockeri.co/image/wangzezhi/puppeteer)](https://hub.docker.com/r/wangzezhi/puppeteer/)\n\n## Background\n\n在 Docker 中运行 Puppeteer 是真的很麻烦，以下是引用 Puppeteer GitHub 官方建议，并提出建议使用的 Dockerfile，但是因为某墙的问题，在构建过程中屡次失败，`Shadowsocket 全局模式` 或 `export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;` 或 切换源 `sources.list` 都未能构建成功，所以才会有这个 repo.\n\n\u003e Getting headless Chrome up and running in Docker can be tricky. The bundled Chromium that Puppeteer installs is missing the necessary shared library dependencies.\n\u003e To fix, you'll need to install the missing dependencies and the latest Chromium package in your Dockerfile\n\n官方建议 [Running Puppeteer in Docker](https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-in-docker)\n\n## Getting Started\n\n### Introduction\n\n本镜像使用\n\n- node:10.0.0\n- google-chrome-unstable\n\n\u003e_如果需要指定版本可以 PR_\n\n### Usage\n\n```shell\ndocker pull wangzezhi/puppeteer\n```\n\n`Dockerfile` 例子\n\n```shell\n\nFROM wangzezhi/puppeteer:latest\n\n# workdir\nWORKDIR /app\n\n# add all to workdir\nADD . /app\n\n# timezone\nRUN \\\n    rm /etc/localtime \u0026\u0026 \\\n    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime\n\n# set puppeteer npm download host\nENV PUPPETEER_DOWNLOAD_HOST='https://npm.taobao.org/mirrors'\n\nRUN npm i --only=production --registry=https://registry.npm.taobao.org\n\n# Add user so we don't need --no-sandbox.\nRUN groupadd -r pptruser \u0026\u0026 useradd -r -g pptruser -G audio,video pptruser \\\n    \u0026\u0026 mkdir -p /home/pptruser/Downloads \\\n    \u0026\u0026 chown -R pptruser:pptruser /home/pptruser \\\n    \u0026\u0026 chown -R pptruser:pptruser ./node_modules\n\n# Run everything after as non-privileged user.\nUSER pptruser\n\n# add your own ENV\nENV PORT=7900\n\n# ENV ...\n\n# expose port to access\nEXPOSE 7900\n\nENTRYPOINT [\"dumb-init\", \"--\"]\nCMD [ \"npm\", \"start\" ]\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingzez%2Fdocker-puppeteer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkingzez%2Fdocker-puppeteer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkingzez%2Fdocker-puppeteer/lists"}