{"id":17537556,"url":"https://github.com/zenhack/docker-spk","last_synced_at":"2025-04-23T21:09:12.436Z","repository":{"id":57486334,"uuid":"144439824","full_name":"zenhack/docker-spk","owner":"zenhack","description":"Develop sandstorm apps using Docker","archived":false,"fork":false,"pushed_at":"2022-11-05T02:39:23.000Z","size":174,"stargazers_count":16,"open_issues_count":5,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-23T21:09:07.165Z","etag":null,"topics":["docker","sandstorm"],"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/zenhack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-12T05:14:51.000Z","updated_at":"2023-08-18T05:40:11.000Z","dependencies_parsed_at":"2022-09-01T21:01:58.476Z","dependency_job_id":null,"html_url":"https://github.com/zenhack/docker-spk","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fdocker-spk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fdocker-spk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fdocker-spk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fdocker-spk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zenhack","download_url":"https://codeload.github.com/zenhack/docker-spk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250514786,"owners_count":21443209,"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":["docker","sandstorm"],"created_at":"2024-10-20T20:42:11.073Z","updated_at":"2025-04-23T21:09:12.420Z","avatar_url":"https://github.com/zenhack.png","language":"Go","readme":"`docker-spk` is a tool to develop sandstorm packages using Docker to\nbuild the root filesystems.\n\nIt is a work in progress, but already supports converting docker images\nto sandstorm packages (`.spk` files), and signing and populating them\nwith metadata based on `sandstorm-pkgdef.capnp`.\n\nNote that:\n\n* It is not possible to automatically convert an arbitrary Docker image\n  and have it work; the filesystem must be constructed to behave\n  correctly inside Sandstorm's sandbox environment.\n* Docker is only used to build the root filesystem of the app.\n  Accordingly, Dockerfile instructions like `CMD`, `EXPOSE`,\n  `STOPSIGNAL`, etc, which do not modify the image's filesystem, have\n  no effect on the app. For other forms of customization, edit\n  `sandstorm-pkgdef.capnp`.\n\n# Installing\n\nIn addition to `docker-spk` itself, you will also need the `capnp`\ncommand line tool somewhere in your `$PATH`; see the [Cap'n Proto\ndocumentation][capnp-install] for setup.\n\n## From Pre-Built Binaries\n\nThe [releases page][releases] distributes tar archives containing x86_64\nbinaries of `docker-spk` for Linux and MacOS; extract the archive, and\nplace the appropriate\n\n## From Source\n\n1. Install Go 1.11 or later.\n2. From the root of the source tree, run:\n\n```sh\ngo build\n```\n\nThis will create an executable `./docker-spk`; place it somewhere in\nyour `$PATH`.\n\n# Quick Start\n\nFirst, generate a sandstorm-pkgdef.capnp in the current directory:\n\n```\ndocker-spk init\n```\n\nThe tool will automatically generate a keypair for your app, and save it\nin your keyring (by default `~/.sandstorm-keyring`, but this can be\noverridden with the `-keyring` flag).\n\nEdit the file to match your app. In particular, you will want to change\nthe command used to launch the app, near the bottom of the file.\n\nThen, create a `Dockerfile` in the current directory, which will be\nresponsible for building the filesystem for your app. Finally, from the\ndirectory containing `Dockerfile` and `sandstorm-pkgdef.capnp`, run:\n\n```\ndocker-spk build\n```\n\nThis will build the docker image and then package it into a `.spk` file.\nwith the name derived from the app name and version defined in\n`sandstorm-manifest.capnp`.\n\nAlternatively, you can package an already-built docker image:\n\n```\ndocker-spk pack -image \u003cimage-name\u003e\n```\n\n...to use the image `\u003cimage-name\u003e`, fetched from a running Docker\ndaemon.\n\nThis will skip the build step and just create the `.spk`.\n\nYou can also use `docker save` to fetch the image manually and specify\nthe file name via `-imagefile`:\n\n```\ndocker save my-image \u003e my-image.tar\ndocker-spk pack -imagefile my-image.tar\n```\n\n# Examples\n\nThe `examples/` directory contains some examples that may be useful in\nseeing how to package apps with `docker-spk`.\n\n# Reference\n\nSee `docker-spk -h`.\n\n# License\n\nApache 2.0, see COPYING.\n\n[capnp-install]: https://capnproto.org/install.html\n[releases]: https://github.com/zenhack/docker-spk/releases\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenhack%2Fdocker-spk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzenhack%2Fdocker-spk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenhack%2Fdocker-spk/lists"}