{"id":15704227,"url":"https://github.com/cedrickring/diana","last_synced_at":"2025-05-12T16:42:48.546Z","repository":{"id":57576688,"uuid":"184646315","full_name":"cedrickring/diana","owner":"cedrickring","description":"Extract binaries out of your container images","archived":false,"fork":false,"pushed_at":"2020-12-23T11:49:26.000Z","size":1210,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-26T13:23:24.498Z","etag":null,"topics":["ci","container","docker","go"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/cedrickring.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}},"created_at":"2019-05-02T20:22:10.000Z","updated_at":"2022-09-03T11:20:29.000Z","dependencies_parsed_at":"2022-09-26T19:02:36.220Z","dependency_job_id":null,"html_url":"https://github.com/cedrickring/diana","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickring%2Fdiana","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickring%2Fdiana/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickring%2Fdiana/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedrickring%2Fdiana/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedrickring","download_url":"https://codeload.github.com/cedrickring/diana/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243165525,"owners_count":20246721,"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":["ci","container","docker","go"],"created_at":"2024-10-03T20:10:48.185Z","updated_at":"2025-03-12T05:30:47.488Z","avatar_url":"https://github.com/cedrickring.png","language":"Go","readme":"# diana\n\nA simple executable to extract binaries out of your container images.\n\n### Usage\n\n`diana -i \u003cimage\u003e /path/to/binary`\n\nE.g. to extract the `helloworld` binary out of my `cedrickring/hello-world` image, just type\n```bash\n./diana -i cedrickring/hello-world /app/helloworld\n```\nand the helloworld binary will be extracted to ./helloworld\n\nExample output:\n```\nINFO[0000] Retrieving manifest for image cedrickring/hello-world \nINFO[0001] Pulling layer sha256:20e3fdddeb7723652929c6d14ec952eb3810069340118027bddfebe765f1eaf4 (965528 B) \nINFO[0002] Extracted file to ./helloworld \n```\n\n**Note**: to pull private images, just have a `~/.docker/config.json` in place with your credentials.\n\n### Installation\n\n```\ncurl -fsSL https://raw.githubusercontent.com/cedrickring/diana/master/scripts/get | bash\n```\nor download the binary manually from the [releases tab](https://github.com/cedrickring/diana/releases) and put it in\nyour `$PATH`.\n\n(No docker is required)\n\n### Flags\n\n- `-i/--image` The image containing the file to be extracted\n- `--base-layer` Pull the base image layer too (if you want to extract a file from a base image) \n- `-c/--color` Force colorful terminal output\n\n### Why use diana instead of just `docker cp` ???\n\nWell with `diana` you're not pulling the base image layer, but all the other layers which might contain the\nbinary. So the download time will be way faster than pulling the whole image down from e.g. Docker Hub.\n\nAaaaand `diana` will cleanup after she's done (instead of letting you sit on GBs of images) ;)\n\n#### Notes\n\nThe name `diana` comes from a (imo) very cool [keynote](https://www.youtube.com/watch?v=oNa3xK2GFKY) by [@kelseyhightower](https://github.com/kelseyhightower) at\nKubeCon 2018 where he extracts binaries out of an image with a tool called diana. Unfortunately he didn't make the project\navailable to all of us so I decided to make it by myself.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedrickring%2Fdiana","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcedrickring%2Fdiana","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedrickring%2Fdiana/lists"}