{"id":34701628,"url":"https://github.com/fernandocelmer/docker-selenium-lambda","last_synced_at":"2026-04-11T17:02:06.932Z","repository":{"id":326663405,"uuid":"1106440175","full_name":"FernandoCelmer/docker-selenium-lambda","owner":"FernandoCelmer","description":"Docker Selenium Lambda","archived":false,"fork":false,"pushed_at":"2025-11-30T03:12:20.000Z","size":46,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-01T10:59:26.976Z","etag":null,"topics":["aws-lambda","chromium","docker","firefox","lambda","selenium","selenium-python","tor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FernandoCelmer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-29T08:51:19.000Z","updated_at":"2025-11-30T20:52:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/FernandoCelmer/docker-selenium-lambda","commit_stats":null,"previous_names":["fernandocelmer/docker-selenium-lambda"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/FernandoCelmer/docker-selenium-lambda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCelmer%2Fdocker-selenium-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCelmer%2Fdocker-selenium-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCelmer%2Fdocker-selenium-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCelmer%2Fdocker-selenium-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FernandoCelmer","download_url":"https://codeload.github.com/FernandoCelmer/docker-selenium-lambda/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoCelmer%2Fdocker-selenium-lambda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31687881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["aws-lambda","chromium","docker","firefox","lambda","selenium","selenium-python","tor"],"created_at":"2025-12-24T22:52:49.337Z","updated_at":"2026-04-11T17:02:06.927Z","avatar_url":"https://github.com/FernandoCelmer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Selenium Lambda\n\n[![Docker Lint](https://github.com/FernandoCelmer/docker-selenium-lambda/actions/workflows/docker-lint.yml/badge.svg)](https://github.com/FernandoCelmer/docker-selenium-lambda/actions/workflows/docker-lint.yml)\n[![Python](https://img.shields.io/badge/Python-3.14-blue.svg)](https://www.python.org/)\n[![Docker](https://img.shields.io/badge/Docker-Latest-blue.svg)](https://www.docker.com/)\n[![Docker Hub](https://img.shields.io/badge/Docker%20Hub-fernandocelmer%2Fdocker--selenium--lambda-blue)](https://hub.docker.com/r/fernandocelmer/docker-selenium-lambda)\n[![AWS Lambda](https://img.shields.io/badge/AWS-Lambda-orange.svg)](https://aws.amazon.com/lambda/)\n[![License](https://img.shields.io/badge/License-GPLv3-green.svg)](LICENSE)\n\nA production-ready Docker image for AWS Lambda with Python 3.14, featuring Selenium web automation with support for Chromium, Firefox, and Tor Browser. Optimized for headless browser automation in serverless environments.\n\nThis image provides everything you need to run Selenium-based web scraping, testing, or automation tasks in AWS Lambda with support for multiple browsers. Each browser is available as a separate tag for optimized image sizes.\n\n## Features\n\n- **Python 3.14** - Latest Python version with build argument support\n- **Selenium \u003e=4.38.0** - Web automation framework\n- **Chromium** - Headless browser (version 131.0.6778.85) with ChromeDriver\n- **Firefox** - Headless browser with GeckoDriver\n- **Tor Browser** - Privacy-focused browser with Tor network support\n- **Multiple Browser Support** - Separate Docker tags for Chromium, Firefox, and Tor\n- **Code Quality** - Hadolint for Dockerfile linting\n- **CI/CD** - Automated build and push for all browsers\n\n## Commands\n\n### Chromium\n```bash\nmake lint\nmake build-chromium\nmake test-chromium\nmake run-chromium\nmake push-chromium DOCKER_HUB_USER=yourusername\n```\n\n### Firefox\n```bash\nmake lint\nmake build-firefox\nmake test-firefox\nmake run-firefox\nmake push-firefox DOCKER_HUB_USER=yourusername\n```\n\n### Tor Browser\n```bash\nmake lint\nmake build-tor\nmake test-tor\nmake run-tor\nmake push-tor DOCKER_HUB_USER=yourusername\n```\n\n### Generic (defaults to Chromium)\n```bash\nmake build BROWSER=chromium\nmake build BROWSER=firefox\nmake build BROWSER=tor\nmake test BROWSER=chromium\nmake run BROWSER=chromium\n```\n\n## Docker Hub\n\nPre-built images are available on Docker Hub: [fernandocelmer/docker-selenium-lambda](https://hub.docker.com/r/fernandocelmer/docker-selenium-lambda)\n\n### Quick Start\n\n**Chromium (default):**\n```bash\ndocker pull fernandocelmer/docker-selenium-lambda:latest\ndocker run -p 9000:8080 -e BROWSER=chromium fernandocelmer/docker-selenium-lambda:latest\n```\n\n**Firefox:**\n```bash\ndocker pull fernandocelmer/docker-selenium-lambda:firefox\ndocker run -p 9000:8080 -e BROWSER=firefox fernandocelmer/docker-selenium-lambda:firefox\n```\n\n**Tor Browser:**\n```bash\ndocker pull fernandocelmer/docker-selenium-lambda:tor\ndocker run -p 9000:8080 -e BROWSER=tor fernandocelmer/docker-selenium-lambda:tor\n```\n\n### Available Tags\n\n**Chromium:**\n```bash\ndocker pull fernandocelmer/docker-selenium-lambda:latest\ndocker pull fernandocelmer/docker-selenium-lambda:chromium\n```\n\n**Firefox:**\n```bash\ndocker pull fernandocelmer/docker-selenium-lambda:firefox\n```\n\n**Tor Browser:**\n```bash\ndocker pull fernandocelmer/docker-selenium-lambda:tor\n```\n\n**Tag Descriptions:**\n- `latest` - Chromium browser (default tag)\n- `chromium` - Chromium browser\n- `firefox` - Firefox browser\n- `tor` - Tor Browser with Tor network support\n\n## Build\n\n**Chromium:**\n```bash\ndocker build --build-arg BROWSER=chromium -t docker-selenium-lambda:chromium .\n```\n\n**Firefox:**\n```bash\ndocker build --build-arg BROWSER=firefox -t docker-selenium-lambda:firefox .\n```\n\n**Tor Browser:**\n```bash\ndocker build --build-arg BROWSER=tor -t docker-selenium-lambda:tor .\n```\n\n**Using Makefile:**\n```bash\nmake build-chromium\nmake build-firefox\nmake build-tor\nmake build BROWSER=chromium\nmake build BROWSER=firefox\nmake build BROWSER=tor\n```\n\n## Test Lambda Function\n\n```bash\ncurl -XPOST \"http://localhost:9000/2015-03-31/functions/function/invocations\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'\n```\n\n## Selenium Configuration\n\nThe Dockerfile includes:\n- **Chromium**: Chrome for Testing (v131.0.6778.85) with ChromeDriver\n- **Firefox**: Latest Firefox with GeckoDriver (v0.34.0)\n- **Tor Browser**: Tor Browser (v13.0.16) with GeckoDriver and Tor network support\n- All required system dependencies for headless browser operation\n- Selenium Python package (\u003e=4.38.0)\n\nThe Lambda function automatically detects the browser via `BROWSER` environment variable:\n- Set `BROWSER=chromium` for Chromium\n- Set `BROWSER=firefox` for Firefox\n- Set `BROWSER=tor` for Tor Browser\n\n**Chromium options optimized for AWS Lambda:**\n- `--headless=new` - Run without GUI\n- `--no-sandbox` - Required for Lambda environment\n- `--disable-dev-shm-usage` - Prevents shared memory issues\n- `--single-process` - Run in single process mode\n\n**Firefox options optimized for AWS Lambda:**\n- `--headless` - Run without GUI\n- Optimized window size and memory settings\n\n**Tor Browser options optimized for AWS Lambda:**\n- `--headless` - Run without GUI\n- SOCKS5 proxy configured to 127.0.0.1:9050\n- Tor network routing enabled\n- Optimized window size and memory settings\n\n## Code Quality\n\nThe project uses Hadolint for Dockerfile linting. Configuration is in `.code_quality/.hadolint.yaml`.\n\nGitHub Actions automatically runs linting on push and pull requests.\n\n## Resources\n\n- [Hadolint Documentation](https://hadolint.github.io/hadolint/)\n- [AWS Lambda Python Image](https://docs.aws.amazon.com/lambda/latest/dg/python-image.html)\n- [Selenium Documentation](https://www.selenium.dev/documentation/)\n- [ChromeDriver for Testing](https://googlechromelabs.github.io/chrome-for-testing/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandocelmer%2Fdocker-selenium-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernandocelmer%2Fdocker-selenium-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandocelmer%2Fdocker-selenium-lambda/lists"}