{"id":38040436,"url":"https://github.com/iansmith/pickett","last_synced_at":"2026-01-16T19:53:54.727Z","repository":{"id":19128806,"uuid":"22358331","full_name":"iansmith/pickett","owner":"iansmith","description":"pickett -- make for docker world","archived":false,"fork":false,"pushed_at":"2014-09-12T18:06:58.000Z","size":842,"stargazers_count":1,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-19T11:34:19.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"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/iansmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2014-07-28T21:19:59.000Z","updated_at":"2015-02-10T20:53:34.000Z","dependencies_parsed_at":"2022-09-14T11:31:10.373Z","dependency_job_id":null,"html_url":"https://github.com/iansmith/pickett","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iansmith/pickett","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iansmith%2Fpickett","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iansmith%2Fpickett/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iansmith%2Fpickett/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iansmith%2Fpickett/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iansmith","download_url":"https://codeload.github.com/iansmith/pickett/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iansmith%2Fpickett/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28482107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-16T19:53:54.644Z","updated_at":"2026-01-16T19:53:54.722Z","avatar_url":"https://github.com/iansmith.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"### pickett: make for the docker world \n\n### How to get it\n\nAssuming you have a modern version of go already installed:\n\n```\n# Set up GOPATH in your home directory\nexport GOPATH=$HOME/go\nmkdir -p $GOPATH/src\n\n# Add $GOPATH/bin to your path so that you can run 'pickett' directly after 'go install'\nexport PATH=$PATH:$GOPATH/bin\n\n# Get the pickett code\ngo get github.com/tools/godep\nmkdir -p $GOPATH/src/github.com/igneous-systems\ncd $GOPATH/src/github.com/igneous-systems\ngit clone https://github.com/igneous-systems/pickett # can be replaced by your repo\n\n# optional: you can create and checkout a branch here\n\n# ensure dependencies are present\ncd $GOPATH/src/github.com/igneous-systems/pickett\ngodep restore\n\n# build pickett and install it in $GOPATH/bin\ngo install github.com/igneous-systems/pickett\n```\n\nYou should end up with the executable `pickett` in `$GOPATH/bin`.\n\nThe reason we use git clone instead of godep get to grab the source of pickett here is\nto enable a fork-based workflow.  There are internal references to packages in the\ngithub.com/igneous-systems/pickett namespace, which means that any forks of pickett still\nhave to live in $GOPATH/src/github.com/igneous-systems.\n\n### How to run the VM ###\n\nPickett assumes that you are running a VM with an appropriate version of docker, with\n/vagrant mounted to your host system's home directory\n\n```\n# Start the VM\ncd $GOPATH/src/github.com/igneous-systems/pickett\nvagrant up\nvagrant ssh\nsudo docker -d -H \"tcp://0.0.0.0:2375\" \u0026\nsudo start etcd\nexit\n```\n\n### How to get a sample project\n\nAssuming you did the above:\n\n```\n# Test that pickett works\ncd $GOPATH/src/github.com/igneous-systems\ngit clone https://github.com/igneous-systems/pickett-samples\nexport DOCKER_HOST=\"tcp://localhost:2375\"\ncd $GOPATH/src/github.com/igneous-systems/pickett-samples/sample1\npickett run weather-client\n```\n\nThe file to examine is the `Pickett.json`.\n\n### How to build some stuff\n\nAssuming you \n\n* have a modern version of docker (at least 1.1.1) already installed \n* have set your DOCKER_HOST if you not on the machine that runs docker or are using boot2docker\n* Are willing to wait, this takes several minutes the first time\n```\ncd /tmp/foo/pickett-samples/sample1/\npickett --debug run candidate\n```\nThat will take a while (minutes) the first time because it creates some docker images that require downloading a lot of software (`apt-get install blah blah`).  Once in steady state, pickett does incremental builds.  \n\nYou may want to look at the files `/tmp/foo/pickett-samples/sample1/container/runner/Dockerfile` and `/tmp/foo/pickett-samples/sample1/container/builder/Dockerfile` to see the commands that take so long. \n\nThe --debug flag is just to give you some stuff to read while you are waiting. Normally that is only interesting to pickett developers.\n\nThe \"candidate\" in the command above refers to a tag on a docker container called `candidate`.  After this completes, you may want to try some docker commands like this:\n\n```\ndocker images\ndocker run -it -v candidate /bin/bash\n```\n\nIn the former of those commands you'll see \"sample1/runner\", \"sample1/builder\", and \"sample1/external\" which are the containers for running (virgin state), building (has go tools), and the external libraries for the sample system.  In the latter, if you look in `/` you'll see `/wuclient` and `/wuserver`.  You should note that the system installed in `candidate` has no build tools (`build-essential` in ubuntu parlance) nor go installed, _just_ the two executables that are the system to be executed.\n\nFor giggles, you may want to to try:\n```\ntime pickett run candidate\n```\n\nThat shows you the elapsed time to *just* do the dependency checking (the pickett overhead).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiansmith%2Fpickett","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiansmith%2Fpickett","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiansmith%2Fpickett/lists"}