{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/8819","labels_url":"https://api.github.com/repos/docker/docker/issues/8819/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/8819/comments","events_url":"https://api.github.com/repos/docker/docker/issues/8819/events","html_url":"https://github.com/docker/docker/issues/8819","id":47024915,"number":8819,"title":"docker save myimage has nondeterministic output","user":{"login":"nh2","id":399535,"avatar_url":"https://avatars.githubusercontent.com/u/399535?v=3","gravatar_id":"","url":"https://api.github.com/users/nh2","html_url":"https://github.com/nh2","followers_url":"https://api.github.com/users/nh2/followers","following_url":"https://api.github.com/users/nh2/following{/other_user}","gists_url":"https://api.github.com/users/nh2/gists{/gist_id}","starred_url":"https://api.github.com/users/nh2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nh2/subscriptions","organizations_url":"https://api.github.com/users/nh2/orgs","repos_url":"https://api.github.com/users/nh2/repos","events_url":"https://api.github.com/users/nh2/events{/privacy}","received_events_url":"https://api.github.com/users/nh2/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/docker/labels/exp/expert","name":"exp/expert","color":"3B8686"},{"url":"https://api.github.com/repos/docker/docker/labels/group/distribution","name":"group/distribution","color":"F6FBFF"},{"url":"https://api.github.com/repos/docker/docker/labels/kind/enhancement","name":"kind/enhancement","color":"E8CAAF"}],"state":"closed","locked":false,"assignee":{"login":"jlhawn","id":1441929,"avatar_url":"https://avatars.githubusercontent.com/u/1441929?v=3","gravatar_id":"","url":"https://api.github.com/users/jlhawn","html_url":"https://github.com/jlhawn","followers_url":"https://api.github.com/users/jlhawn/followers","following_url":"https://api.github.com/users/jlhawn/following{/other_user}","gists_url":"https://api.github.com/users/jlhawn/gists{/gist_id}","starred_url":"https://api.github.com/users/jlhawn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlhawn/subscriptions","organizations_url":"https://api.github.com/users/jlhawn/orgs","repos_url":"https://api.github.com/users/jlhawn/repos","events_url":"https://api.github.com/users/jlhawn/events{/privacy}","received_events_url":"https://api.github.com/users/jlhawn/received_events","type":"User","site_admin":false},"milestone":null,"comments":22,"created_at":"2014-10-28T13:23:27Z","updated_at":"2015-10-27T16:30:34Z","closed_at":"2015-07-23T18:54:51Z","body":"Repeated `docker save` on the same image create different tar files because the current time is present in the tar file.\r\n\r\nIt would be great if `docker save` was deterministic because then you can easily publish `sha1sum`s of your containers etc; currently, each `docker save ... | sha1sum` has a different output.\r\n\r\nThis is usually solved using `tar` by using its `--mtime` option to set the time to 0."},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/151559963","html_url":"https://github.com/docker/docker/issues/8819#issuecomment-151559963","issue_url":"https://api.github.com/repos/docker/docker/issues/8819","id":151559963,"user":{"login":"hellertime","id":18697,"avatar_url":"https://avatars.githubusercontent.com/u/18697?v=3","gravatar_id":"","url":"https://api.github.com/users/hellertime","html_url":"https://github.com/hellertime","followers_url":"https://api.github.com/users/hellertime/followers","following_url":"https://api.github.com/users/hellertime/following{/other_user}","gists_url":"https://api.github.com/users/hellertime/gists{/gist_id}","starred_url":"https://api.github.com/users/hellertime/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hellertime/subscriptions","organizations_url":"https://api.github.com/users/hellertime/orgs","repos_url":"https://api.github.com/users/hellertime/repos","events_url":"https://api.github.com/users/hellertime/events{/privacy}","received_events_url":"https://api.github.com/users/hellertime/received_events","type":"User","site_admin":false},"created_at":"2015-10-27T16:30:33Z","updated_at":"2015-10-27T16:30:33Z","body":"With 1.8.3 I still see non-deterministic output, even if I explode the output of `docker save`:\r\n\r\n```\r\n$ sudo docker version\r\nClient:\r\n Version:      1.8.3\r\n API version:  1.20\r\n Go version:   go1.4.2\r\n Git commit:   f4bf5c7\r\n Built:        Mon Oct 12 05:37:18 UTC 2015\r\n OS/Arch:      linux/amd64\r\n\r\nServer:\r\n Version:      1.8.3\r\n API version:  1.20\r\n Go version:   go1.4.2\r\n Git commit:   f4bf5c7\r\n Built:        Mon Oct 12 05:37:18 UTC 2015\r\n OS/Arch:      linux/amd64\r\n$ sudo docker save appimage-sd-bind:1.0-1.2 | tar xO | sha256sum\r\n3d4372214f5006d1b84d6d80d387f0073c1c05eb7b552d680fc640059932451b  -\r\n$ sudo docker save appimage-sd-bind:1.0-1.2 | tar xO | sha256sum\r\nbdb094a1420ad63236e1d9ffe83d8345de9343e9258df9b43f195fab9076b172  -\r\n$ sudo docker save appimage-sd-bind:1.0-1.2 | tar xO | sha256sum\r\n3d4372214f5006d1b84d6d80d387f0073c1c05eb7b552d680fc640059932451b  -\r\n$ sudo docker save appimage-sd-bind:1.0-1.2 | tar xO | sha256sum\r\n061e8ac4a2976b544d8ba360ad68a97c2181c958fbeafdfb759f6d79c7744dae  -\r\n$ sudo docker save appimage-sd-bind:1.0-1.2 | tar xO | sha256sum\r\n3d4372214f5006d1b84d6d80d387f0073c1c05eb7b552d680fc640059932451b  -\r\n$ sudo docker save appimage-sd-bind:1.0-1.2 | tar xO | sha256sum\r\n3d4372214f5006d1b84d6d80d387f0073c1c05eb7b552d680fc640059932451b  -\r\n```\r\n\r\nIs this a regression?\r\n\r\n"}}