{"id":13471079,"url":"https://github.com/uNetworking/Containerize","last_synced_at":"2025-03-26T13:30:46.579Z","repository":{"id":66131388,"uuid":"45932399","full_name":"uNetworking/Containerize","owner":"uNetworking","description":"Tool for creating minimal Docker containers","archived":false,"fork":false,"pushed_at":"2015-12-19T02:49:00.000Z","size":10,"stargazers_count":32,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-30T02:58:20.361Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/uNetworking.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":"2015-11-10T18:38:14.000Z","updated_at":"2024-06-20T03:31:47.000Z","dependencies_parsed_at":"2023-02-19T23:30:46.482Z","dependency_job_id":null,"html_url":"https://github.com/uNetworking/Containerize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FContainerize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FContainerize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FContainerize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uNetworking%2FContainerize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uNetworking","download_url":"https://codeload.github.com/uNetworking/Containerize/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245662731,"owners_count":20652072,"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":[],"created_at":"2024-07-31T16:00:39.466Z","updated_at":"2025-03-26T13:30:46.276Z","avatar_url":"https://github.com/uNetworking.png","language":"C++","readme":"## Containerize\nTool for creating minimal Docker containers. License is zlib/libpng.  \n\nIt does work automatically in very simple cases but might need manual intervention when executables have runtime dependencies not detected by LDD. This is the case with OpenCL driver dependencies which needs custom ugly haxxes.  \n--opencl flag is used to collect the minimal OpenCL driver, which currently works with NVIDIA and Intel OpenCL drivers.\n\nThe point is, instead of using some pre-made 700mb large Docker image with crap you don't need, this tool helps you deploy ELF binaries with minimal overhead (20mb or whatever). The point of Docker is to skip the crap you previously needed when deploying complete OS:es in virtual machines.\n\n### Usage\n```\nUsage: containerize [options] ELF args..\n\noptions:\n  --expose \u003cport\u003e                    Expose container port \u003cport\u003e\n  --from \u003cimage\u003e (=scratch)          Derive from image \u003cimage\u003e\n  --tar                              Tar container instead of zip\n  --filename \u003cfilename\u003e (=container) Output filename without extension\n  --essentials                       Base container on busybox, a minimal \u003c3mb \n                                     image\n  --opencl                           Include /etc/OpenCL/vendors and its \n                                     resolved content\n  --help                             Show this help  \n  ```\n  \n  Containerize focuses on a Linux executable (ELF) and collects its dependencies (shared objects), packages them with the ELF and writes a Dockerfile. Basic features like exposing a network port and deriving the image from others are supported.  \n    \n  If you run your local app like: **./my_app arg_1 arg_2** then to create a container of this app you simply add **containerize** as a prefix, like so: **containerize ./my_app arg_1 arg_2**. This will create a container. To expose a network port you have to add the --expose argument accordingly.\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FuNetworking%2FContainerize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FuNetworking%2FContainerize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FuNetworking%2FContainerize/lists"}