{"id":13824414,"url":"https://github.com/ScribeMD/rootless-docker","last_synced_at":"2025-07-08T19:31:45.943Z","repository":{"id":36995089,"uuid":"412748231","full_name":"ScribeMD/rootless-docker","owner":"ScribeMD","description":"Run Docker in Rootless Mode to Prevent Permission Errors","archived":false,"fork":false,"pushed_at":"2024-03-26T01:37:49.000Z","size":330,"stargazers_count":30,"open_issues_count":4,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-14T12:54:23.023Z","etag":null,"topics":["asdf","composite-action","conventional-commits","docker","editorconfig","github-actions","github-actions-docker","megalinter","nodejs","permissions","pre-commit","prettier","python","python-poetry","renovate","rootless-docker","security","semver","vscode","yaml"],"latest_commit_sha":null,"homepage":"","language":null,"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/ScribeMD.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2021-10-02T09:19:14.000Z","updated_at":"2024-11-08T01:29:14.000Z","dependencies_parsed_at":"2023-10-16T13:05:55.801Z","dependency_job_id":"1c16aa82-9e38-45bf-9ee9-4163c38dc455","html_url":"https://github.com/ScribeMD/rootless-docker","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScribeMD%2Frootless-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScribeMD%2Frootless-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScribeMD%2Frootless-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScribeMD%2Frootless-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScribeMD","download_url":"https://codeload.github.com/ScribeMD/rootless-docker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225457772,"owners_count":17477352,"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":["asdf","composite-action","conventional-commits","docker","editorconfig","github-actions","github-actions-docker","megalinter","nodejs","permissions","pre-commit","prettier","python","python-poetry","renovate","rootless-docker","security","semver","vscode","yaml"],"created_at":"2024-08-04T09:01:02.356Z","updated_at":"2024-11-20T02:30:41.850Z","avatar_url":"https://github.com/ScribeMD.png","language":null,"readme":"# rootless-docker\n\n[![GitHub Action: Try Me](https://img.shields.io/badge/GitHub_Action-Try_Me-AC80A0?logo=githubactions\u0026logoColor=2088FF\u0026labelColor=343B42)](https://github.com/marketplace/actions/rootless-docker)\n[![Rootless Docker](https://img.shields.io/badge/Docker-Rootless-EE4266?logo=docker\u0026logoColor=2496ED\u0026labelColor=343B42)](https://docs.docker.com/engine/security/rootless/)\n[![Test Workflow Status](https://github.com/ScribeMD/rootless-docker/workflows/Test/badge.svg)](https://github.com/ScribeMD/rootless-docker/actions/workflows/test.yaml)\n[![Copy/Paste: 0%](https://img.shields.io/badge/Copy%2FPaste-0%25-B200B2?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjAyNCAzLjc1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVIMjAuMjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMS40OThhMS43NSAxLjc1IDAgMDEtMS43NSAxLjc1SDguNzc0YTEuNzUgMS43NSAwIDAxLTEuNzUtMS43NVYzLjc1em0xLjc1LS4yNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTEuNDk4YzAgLjEzOS4xMTIuMjUuMjUuMjVIMjAuMjVhLjI1LjI1IDAgMDAuMjUtLjI1VjMuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUg4Ljc3NHoiLz48cGF0aCBkPSJNMS45OTUgMTAuNzQ5YTEuNzUgMS43NSAwIDAxMS43NS0xLjc1MUg1LjI1YS43NS43NSAwIDExMCAxLjVIMy43NDVhLjI1LjI1IDAgMDAtLjI1LjI1TDMuNSAyMC4yNWMwIC4xMzguMTExLjI1LjI1LjI1aDkuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTEuNTFhLjc1Ljc1IDAgMTExLjUgMHYxLjUxQTEuNzUgMS43NSAwIDAxMTMuMjUgMjJoLTkuNUExLjc1IDEuNzUgMCAwMTIgMjAuMjVsLS4wMDUtOS41MDF6Ii8+PC9zdmc+\u0026labelColor=343B42)](https://github.com/kucherenko/jscpd)\n\n[![Automated Updates: Renovate](https://img.shields.io/badge/Renovate-Automated_Updates-FF9F1C?logo=renovatebot\u0026logoColor=1A1F6C\u0026labelColor=666)](https://docs.renovatebot.com/)\n[![Package Management: Poetry](https://img.shields.io/badge/Poetry-Package_Management-06BA63?logo=poetry\u0026logoColor=60A5FA\u0026labelColor=666)](https://python-poetry.org/)\n[![Git Hooks: pre-commit](https://img.shields.io/badge/pre--commit-Git_Hooks-04E762?logo=precommit\u0026logoColor=FAB040\u0026labelColor=666)](https://pre-commit.com/)\n[![Commit Style: Conventional Commits](https://img.shields.io/badge/Conventional_Commits-Commit_Style-090C9B?logo=conventionalcommits\u0026logoColor=FE5196\u0026labelColor=666)](https://conventionalcommits.org)\n[![Releases: Semantic Versioning](https://img.shields.io/badge/SemVer-Releases-08A045?logo=semver\u0026logoColor=3F4551\u0026labelColor=666)](https://semver.org/)\n[![Code Style: Prettier](https://img.shields.io/badge/Prettier-Code_Style-000?logo=prettier\u0026logoColor=F7B93E\u0026labelColor=666)](https://prettier.io/)\n[![Code Style: EditorConfig](https://img.shields.io/badge/EditorConfig-Code_Style-FF69EB?logo=editorconfig\u0026logoColor=FEFEFE\u0026labelColor=666)](https://editorconfig.org/)\n[![Editor: Visual Studio Code](https://img.shields.io/badge/VSCode-Editor-EE8434?logo=visualstudiocode\u0026logoColor=007ACC\u0026labelColor=666)](https://code.visualstudio.com/)\n\nRun Docker in Rootless Mode to Prevent Permission Errors\n\n\u003c!--TOC--\u003e\n\n- [rootless-docker](#rootless-docker)\n  - [Usage](#usage)\n  - [Supported Runners](#supported-runners)\n  - [Permissions](#permissions)\n  - [Changelog](#changelog)\n\n\u003c!--TOC--\u003e\n\nGitHub-hosted (and many self-hosted) runners use rootful Docker, but the runner\nitself does not run as root. As described in\n[actions/runner#434](https://github.com/actions/runner/issues/434), files\ncreated by Docker containers are hence owned by root, resulting in permission\nerrors when the runner attempts to clean up checked out repositories. This\naction efficiently prevents those permission errors by running Docker in\nrootless mode so that all files are owned by the runner user. This approach has\nmany benefits as it is:\n\n- safer than elevating the runner to root\n- less brittle than changing the ownership/permissions of or deleting files\n- simpler than other ways of running rootless Docker\n- and fast (~15 seconds on GitHub-hosted runner `ubuntu-22.04`)\n\n[Docker's documentation](https://docs.docker.com/engine/security/rootless/)\ndiscusses rootless mode in detail. If you are running a supported Linux\ndistribution locally, you can follow the steps there to use rootless mode. If\nyou aren't sure, you can ask Docker whether it is in rootless mode:\n\n```sh\ndocker info --format \"{{ .ClientInfo.Context }}\"\n```\n\n## Usage\n\n- Add the following step before your first use of Docker:\n\n  ```yaml\n  - name: Use Docker in rootless mode.\n    uses: ScribeMD/rootless-docker@0.2.2\n  ```\n\n## Supported Runners\n\n- Tested on `ubuntu-22.04`\n- Probably works on `ubuntu-18.04` and `ubuntu-20.04`\n- May work on future versions of Linux\n- Definitely doesn't work on Windows or macOS since Docker only offers rootless\n  mode on Linux\n\n## Permissions\n\nNo\n[permissions](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)\nare required.\n\n## Changelog\n\nPlease refer to [`CHANGELOG.md`](CHANGELOG.md).\n","funding_links":[],"categories":["Others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FScribeMD%2Frootless-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FScribeMD%2Frootless-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FScribeMD%2Frootless-docker/lists"}