{"id":18258944,"url":"https://github.com/pottava/docker-puppeteer","last_synced_at":"2026-05-18T15:02:23.561Z","repository":{"id":147532937,"uuid":"120953333","full_name":"pottava/docker-puppeteer","owner":"pottava","description":"GoogleChrome/puppeteer docker images","archived":false,"fork":false,"pushed_at":"2020-02-07T09:19:57.000Z","size":18,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-08T23:29:31.589Z","etag":null,"topics":["docker","puppeteer"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/pottava/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/pottava.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-02-09T20:39:28.000Z","updated_at":"2022-04-29T13:22:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"5cde610f-282d-44a3-818b-54dac6d76d7f","html_url":"https://github.com/pottava/docker-puppeteer","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/pottava/docker-puppeteer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Fdocker-puppeteer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Fdocker-puppeteer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Fdocker-puppeteer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Fdocker-puppeteer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pottava","download_url":"https://codeload.github.com/pottava/docker-puppeteer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Fdocker-puppeteer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261433936,"owners_count":23157196,"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","puppeteer"],"created_at":"2024-11-05T10:35:32.905Z","updated_at":"2026-05-18T15:02:23.462Z","avatar_url":"https://github.com/pottava.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dockerized [GoogleChrome/puppeteer](https://github.com/GoogleChrome/puppeteer)\n\n[![pottava/puppeteer](http://dockeri.co/image/pottava/puppeteer)](https://hub.docker.com/r/pottava/puppeteer/)\n\n## Supported tags and respective `Dockerfile` links:\n\n・latest ([versions/2.1/Dockerfile](https://github.com/pottava/docker-puppeteer/blob/master/versions/2.1/Dockerfile))  \n・2.1 ([versions/2.1/Dockerfile](https://github.com/pottava/docker-puppeteer/blob/master/versions/2.1/Dockerfile))  \n\n## Usage\n\n### headless\n\nSpecify google-chrome-unstable as its executablePath.\n\n```\n$ cat \u003c\u003c EOF \u003e index.js\nconst puppeteer = require('puppeteer');\n(async () =\u003e {\n  const browser = await puppeteer.launch({\n    executablePath: 'google-chrome-unstable',\n    args: ['--no-sandbox']\n  });\n  const page = await browser.newPage();\n  await page.goto('http://getemoji.com', {waitUntil: 'domcontentloaded'});\n  await page.screenshot({path: 'example.png', fullPage: true});\n  browser.close();\n})();\nEOF\n$ docker run --rm -v $(pwd):/work pottava/puppeteer:2.1 node index.js\n```\n\n### headless false\n\nInstall and run socat\n\n```\n$ brew cask install xquartz\n$ brew install socat\n$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\\\"$DISPLAY\\\"\n```\n\nIt blocks. Then on another terminal,\n\n```\n$ cat \u003c\u003c EOF \u003e index.js\nconst puppeteer = require('puppeteer');\n\n(async () =\u003e {\n  const browser = await puppeteer.launch({\n    executablePath: 'google-chrome-unstable',\n    args: ['--no-sandbox'],\n    headless: false\n  });\n  const page = await browser.newPage();\n  await page.setViewport({width: 1024, height: 768});\n  await page.goto('http://getemoji.com/', {waitUntil: 'domcontentloaded'});\n\n  // Type into search box.\n  await page.type('#srch-term', 'smile', {delay: 1000});\n  const btn = '.input-group-btn button';\n  await page.waitForSelector(btn);\n  await page.click(btn);\n\n  // Wait for the results page to load and display the results.\n  const results = '.search-results a';\n  await page.waitForSelector(results);\n\n  // Extract the results from the page.\n  const links = await page.evaluate(selector =\u003e {\n    const anchors = Array.from(document.querySelectorAll(selector));\n    return anchors.map(anchor =\u003e {\n      const title = anchor.textContent.trim();\n      return \\`\\${title} - \\${anchor.href}\\`;\n    });\n  }, results);\n  console.log(links.join('\\n'));\n\n  await browser.close();\n})();\nEOF\n$ your_local_ip_address=\"$(ifconfig en0 | grep inet | awk '$1==\"inet\" {print $2}')\"\n$ docker run --rm -e DISPLAY=\"${your_local_ip_address}:0\" pottava/puppeteer:2.1 node -e \"$(cat index.js)\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpottava%2Fdocker-puppeteer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpottava%2Fdocker-puppeteer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpottava%2Fdocker-puppeteer/lists"}