{"id":13551415,"url":"https://github.com/appc/docker2aci","last_synced_at":"2025-04-03T01:32:38.485Z","repository":{"id":26155394,"uuid":"29600667","full_name":"appc/docker2aci","owner":"appc","description":"library and CLI tool to convert Docker images to ACIs (archived, see https://github.com/rkt/rkt/issues/4024)","archived":true,"fork":false,"pushed_at":"2018-04-13T15:58:29.000Z","size":1825,"stargazers_count":186,"open_issues_count":23,"forks_count":60,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-08-01T12:24:42.264Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appc.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}},"created_at":"2015-01-21T17:03:40.000Z","updated_at":"2024-01-04T15:46:08.000Z","dependencies_parsed_at":"2022-08-01T06:18:30.524Z","dependency_job_id":null,"html_url":"https://github.com/appc/docker2aci","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appc%2Fdocker2aci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appc%2Fdocker2aci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appc%2Fdocker2aci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appc%2Fdocker2aci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appc","download_url":"https://codeload.github.com/appc/docker2aci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222905892,"owners_count":17055819,"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-08-01T12:01:47.870Z","updated_at":"2024-11-03T21:32:16.613Z","avatar_url":"https://github.com/appc.png","language":"Go","readme":"# docker2aci - Convert docker images to ACI\n\n[![Build Status](https://semaphoreci.com/api/v1/projects/4472761c-2b88-41f2-b2de-bf0447a8a290/610597/badge.svg)](https://semaphoreci.com/appc/docker2aci)\n\ndocker2aci is a small library and CLI binary that converts Docker images to\n[ACI][aci]. It takes as input either a file generated by \"docker save\" or a\nDocker registry URL. It gets all the layers of a Docker image and squashes them\ninto an ACI image. Optionally, it can generate one ACI for each layer, setting\nthe correct dependencies.\n\nAll ACIs generated are compressed with gzip by default. Compression can be\ndisabled by specifying `--compression=none`.\n\n\n## Build\n\nRequirements: golang 1.6+\n\n\tgit clone git://github.com/appc/docker2aci\n\tcd docker2aci\n\t./build.sh\n\n## Volumes\n\nDocker Volumes get converted to mountPoints in the [Image Manifest\nSchema][imageschema]. Since mountPoints need a name and Docker Volumes don't,\ndocker2aci generates a name by appending the path to `volume-` replacing\nnon-alphanumeric characters with dashes. That is, if a Volume has `/var/tmp`\nas path, the resulting mountPoint name will be `volume-var-tmp`.\n\nWhen the docker2aci CLI binary converts a Docker Volume to a mountPoint it will\nprint its name, path and whether it is read-only or not.\n\n## Ports\n\nDocker Ports get converted to ports in the [Image Manifest\nSchema][imageschema]. The resulting port name will be the port number and the\nprotocol separated by a dash. For example: `6379-tcp`.\n\n## CLI examples\n\n```\n$ docker2aci docker://busybox\nDownloading sha256:55dc925c23d: [==============================] 674 KB/674 KB\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\n\nGenerated ACI(s):\nlibrary-busybox-latest.aci\n$ actool --debug validate library-busybox-latest.aci\nlibrary-busybox-latest.aci: valid app container image\n```\n\n```\n$ /docker2aci --nosquash docker://quay.io/coreos/etcd:latest\nDownloading sha256:f05e5379dcb: [==============================] 3.98 MB/3.98 MB\nDownloading sha256:af1897d2d32: [==============================] 3.5 MB/3.5 MB\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\n\nConverted ports:\n        name: \"2379-tcp\", protocol: \"tcp\", port: 2379, count: 1, socketActivated: false\n        name: \"2380-tcp\", protocol: \"tcp\", port: 2380, count: 1, socketActivated: false\n        name: \"4001-tcp\", protocol: \"tcp\", port: 4001, count: 1, socketActivated: false\n        name: \"7001-tcp\", protocol: \"tcp\", port: 7001, count: 1, socketActivated: false\n\nGenerated ACI(s):\ncoreos-etcd-d21dd9a5886270b7c2c379c02fc548e0696b139c43bb12fdb2d9b63409717485-latest-linux-amd64-3.aci\ncoreos-etcd-620329641f386e62c7b0e0fa60a9acef100e71058124ddc7f1969557c72b2458-latest-linux-amd64-2.aci\ncoreos-etcd-9cd3f08f7ccfaad24c73757a5b4f79601f2790726d6ccdd556a82e5c9c5ddbfa-latest-linux-amd64-1.aci\ncoreos-etcd-9cd3f08f7ccfaad24c73757a5b4f79601f2790726d6ccdd556a82e5c9c5ddbfa-latest-linux-amd64-0.aci\n```\n\n```\n$ docker save -o ubuntu.docker ubuntu\n$ docker2aci ubuntu.docker\nExtracting 706766fe1019\nExtracting a62a42e77c9c\nExtracting 2c014f14d3d9\nExtracting b7cf8f0d9e82\n\nGenerated ACI(s):\nubuntu-latest.aci\n$ actool --debug validate ubuntu-latest.aci\nubuntu-latest.aci: valid app container image\n```\n\n```\n$ docker2aci docker://redis\nDownloading sha256:c666c10c893: [==============================] 37.2 MB/37.2 MB\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:d6f52360d0a: [==============================] 1.69 KB/1.69 KB\nDownloading sha256:8c3a687fd4c: [==============================] 5.93 MB/5.93 MB\nDownloading sha256:15554e0e598: [==============================] 109 KB/109 KB \nDownloading sha256:3286d490a29: [==============================] 611 KB/611 KB \nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3d89b95a63: [==============================] 3.04 MB/3.04 MB\nDownloading sha256:1c4db557158: [==============================] 98 B/98 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a1a961e320b: [==============================] 196 B/196 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\nDownloading sha256:a3ed95caeb0: [==============================] 32 B/32 B\n\nConverted volumes:\n        name: \"volume-data\", path: \"/data\", readOnly: false\n\nConverted ports:\n        name: \"6379-tcp\", protocol: \"tcp\", port: 6379, count: 1, socketActivated: false\n\nGenerated ACI(s):\nlibrary-redis-latest.aci\n$ actool --debug validate library-redis-latest.aci\nlibrary-redis-latest.aci: valid app container image\n```\n\n[aci]: https://github.com/appc/spec/blob/master/SPEC.md#app-container-image\n[imageschema]: https://github.com/appc/spec/blob/master/spec/aci.md#image-manifest-schema\n","funding_links":[],"categories":["Go","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappc%2Fdocker2aci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappc%2Fdocker2aci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappc%2Fdocker2aci/lists"}