{"id":28858053,"url":"https://github.com/vascoguita/raspios-docker","last_synced_at":"2026-05-14T21:35:54.329Z","repository":{"id":295509208,"uuid":"989342487","full_name":"vascoguita/raspios-docker","owner":"vascoguita","description":"Raspberry Pi OS Docker images","archived":false,"fork":false,"pushed_at":"2026-05-10T20:13:13.000Z","size":50,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-10T21:28:24.220Z","etag":null,"topics":["docker","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/vascoguita/raspios","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vascoguita.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","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-05-23T23:03:59.000Z","updated_at":"2026-05-10T20:13:15.000Z","dependencies_parsed_at":"2025-07-10T18:46:46.367Z","dependency_job_id":"3c6fb038-b43c-4b9b-a644-18121fc97ad7","html_url":"https://github.com/vascoguita/raspios-docker","commit_stats":null,"previous_names":["vascoguita/raspios-docker"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/vascoguita/raspios-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascoguita%2Fraspios-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascoguita%2Fraspios-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascoguita%2Fraspios-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascoguita%2Fraspios-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vascoguita","download_url":"https://codeload.github.com/vascoguita/raspios-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascoguita%2Fraspios-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33044268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","raspberry-pi"],"created_at":"2025-06-20T02:04:38.235Z","updated_at":"2026-05-14T21:35:54.324Z","avatar_url":"https://github.com/vascoguita.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi OS Docker Image\n\nOfficial root filesystems. Multi-arch. Auto-updated weekly.\n\n[![Docker Hub](https://img.shields.io/docker/pulls/vascoguita/raspios)](https://hub.docker.com/r/vascoguita/raspios)\n[![License MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/license/mit)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](.github/CODE_OF_CONDUCT.md)\n[![CodeQL](https://github.com/vascoguita/raspios-docker/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/vascoguita/raspios-docker/actions/workflows/github-code-scanning/codeql)\n[![Build](https://github.com/vascoguita/raspios-docker/actions/workflows/docker.yml/badge.svg)](https://github.com/vascoguita/raspios-docker/actions/workflows/docker.yml)\n\n![Raspberry Pi OS Docker banner](https://repository-images.githubusercontent.com/989342487/1cd8280d-bb4b-48e0-99c6-ed2d65f59be3)\n\n## Why?\n\nBuilding software for the Raspberry Pi usually means either cross-compiling\nwith a toolchain you don't fully trust, waiting hours on the Pi itself, or\ncobbling together a chroot from a raw `.img` file.\n\n**raspios-docker** gives you the real Raspberry Pi OS userland - extracted\ndirectly from the official Lite release images - as a standard Docker image you\ncan `pull` and `run` in seconds.\n\n- **Develop and test Raspberry Pi software on any machine** - your laptop, a CI\n  runner, a cloud VM.\n- **Reproduce production environments** - the image _is_ Raspberry Pi OS, not a\n  Debian derivative patched to look like one.\n- **Pin to a specific release** - immutable date-stamped tags guarantee\n  bit-for-bit reproducibility.\n\n## Quick Start\n\n```bash\ndocker run --rm -it --platform linux/arm64 vascoguita/raspios\n```\n\nThat's it. You're inside a Raspberry Pi OS shell.\n\n\u003e [!IMPORTANT]\n\u003e Always specify `--platform` to select the target architecture. Use\n\u003e `linux/arm64` for 64-bit or `linux/arm/v7` / `linux/arm/v6` for 32-bit\n\u003e images.\n\nUse it as a base image in your Dockerfile:\n\n```Dockerfile\nFROM vascoguita/raspios:latest\n\nRUN apt-get update \u0026\u0026 apt-get install -y python3\nCOPY app/ /opt/app/\nCMD [\"python3\", \"/opt/app/main.py\"]\n```\n\n\u003e [!NOTE]\n\u003e **Running on an x86_64 host?** You'll need QEMU for ARM emulation.\n\u003e See [Emulation Setup](#emulation-setup-for-x86_64-hosts) below.\n\n## Available Tags\n\nAll images are published to\n[**Docker Hub → `vascoguita/raspios`**](https://hub.docker.com/r/vascoguita/raspios).\n\n### Rolling tags *(always point to the latest release)*\n\n| Tag | Architectures | Description |\n|-----|---------------|-------------|\n| [`latest`](https://hub.docker.com/layers/vascoguita/raspios/latest) / [`arm64`](https://hub.docker.com/layers/vascoguita/raspios/arm64) | `linux/arm64` | Latest 64-bit release |\n| [`armhf`](https://hub.docker.com/layers/vascoguita/raspios/armhf) | `linux/arm/v6` · `linux/arm/v7` · `linux/arm64` | Latest 32-bit release |\n| [`trixie`](https://hub.docker.com/layers/vascoguita/raspios/trixie) / [`arm64-trixie`](https://hub.docker.com/layers/vascoguita/raspios/arm64-trixie) | `linux/arm64` | Latest 64-bit Trixie release |\n| [`armhf-trixie`](https://hub.docker.com/layers/vascoguita/raspios/armhf-trixie) | `linux/arm/v6` · `linux/arm/v7` · `linux/arm64` | Latest 32-bit Trixie release |\n| [`bookworm`](https://hub.docker.com/layers/vascoguita/raspios/bookworm) / [`arm64-bookworm`](https://hub.docker.com/layers/vascoguita/raspios/arm64-bookworm) | `linux/arm64` | Latest 64-bit Bookworm release |\n| [`armhf-bookworm`](https://hub.docker.com/layers/vascoguita/raspios/armhf-bookworm) | `linux/arm/v6` · `linux/arm/v7` · `linux/arm64` | Latest 32-bit Bookworm release |\n| [`bullseye`](https://hub.docker.com/layers/vascoguita/raspios/bullseye) / [`arm64-bullseye`](https://hub.docker.com/layers/vascoguita/raspios/arm64-bullseye) | `linux/arm64` | Latest 64-bit Bullseye release |\n| [`armhf-bullseye`](https://hub.docker.com/layers/vascoguita/raspios/armhf-bullseye) | `linux/arm/v6` · `linux/arm/v7` · `linux/arm64` | Latest 32-bit Bullseye release |\n| [`buster`](https://hub.docker.com/layers/vascoguita/raspios/buster) / [`arm64-buster`](https://hub.docker.com/layers/vascoguita/raspios/arm64-buster) | `linux/arm64` | Latest 64-bit Buster release |\n| [`armhf-buster`](https://hub.docker.com/layers/vascoguita/raspios/armhf-buster) | `linux/arm/v6` · `linux/arm/v7` · `linux/arm64` | Latest 32-bit Buster release |\n\n### Immutable tags *(pinned, never overwritten)*\n\n| Tag pattern | Example | Description |\n|-------------|---------|-------------|\n| `arm64-\u003csuite\u003e-YYYY-MM-DD` | [`arm64-bookworm-2025-05-06`](https://hub.docker.com/layers/vascoguita/raspios/arm64-bookworm-2025-05-06) | Specific 64-bit release |\n| `armhf-\u003csuite\u003e-YYYY-MM-DD` | [`armhf-bookworm-2025-05-06`](https://hub.docker.com/layers/vascoguita/raspios/armhf-bookworm-2025-05-06) | Specific 32-bit release |\n\n\u003e [!TIP]\n\u003e Use **immutable tags** in CI pipelines and production Dockerfiles to guarantee\n\u003e reproducible builds.\n\n## Emulation Setup for x86_64 Hosts\n\nTo run ARM containers on an Intel/AMD machine, install QEMU user-mode\nemulation. After installing, Docker will automatically use QEMU to run ARM\nimages - no extra flags needed.\n\n**Debian / Ubuntu:**\n\n```bash\nsudo apt-get install -y qemu-user-static binfmt-support\n```\n\n**Fedora:**\n\n```bash\nsudo dnf install -y qemu-user-static\n```\n\n**Arch Linux:**\n\n```bash\nsudo pacman -S qemu-user-static binfmt-qemu-static\n```\n\n## How It Works\n\nThe build is **fully automated** and runs every Monday at 08:00 UTC without manual intervention.\n\n1. **Discover**: The pipeline checks for new Raspberry Pi OS Lite releases.\n2. **Check**: It verifies if the release is already published on Docker Hub. If so, it skips the build.\n3. **Download \u0026 Verify**: It downloads the official `.img` archive and verifies its SHA-256 checksum.\n4. **Extract**: The official root filesystem is extracted using `libguestfs`.\n5. **Build \u0026 Push**: It builds multi-arch Docker images from `scratch` and pushes them to Docker Hub.\n\n## Use Cases\n\n| Scenario | Example |\n|----------|---------|\n| **CI/CD testing** | Run your test suite against real Raspberry Pi OS in GitHub Actions |\n| **Cross-compilation** | Build ARM binaries inside the container on your x86 dev machine |\n| **IoT prototyping** | Develop and iterate on Pi-targeted applications without hardware |\n| **Education** | Learn Linux on the same OS your Raspberry Pi runs - from any computer |\n| **Packaging** | Build `.deb` packages for Raspberry Pi OS in a clean, reproducible environment |\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## Code of Conduct\n\nPlease review our [Code of Conduct](.github/CODE_OF_CONDUCT.md) to understand\nthe expectations for behavior within the project community.\n\n## Security Policy\n\nFor information on our security policy and reporting vulnerabilities, please\ncheck our [Security Policy](.github/SECURITY.md).\n\n## Contributing Guidelines\n\nWe welcome contributions! Before getting started, please read our\n[Contributing Guidelines](.github/CONTRIBUTING.md) for information on how to\ncontribute to the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvascoguita%2Fraspios-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvascoguita%2Fraspios-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvascoguita%2Fraspios-docker/lists"}