Browse code

daemon/container: stream & decode JSON

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

unclejack authored on 2014/11/04 22:43:58
Showing 1 changed files
... ...
@@ -102,13 +102,17 @@ func (container *Container) FromDisk() error {
102 102
 		return err
103 103
 	}
104 104
 
105
-	data, err := ioutil.ReadFile(pth)
105
+	jsonSource, err := os.Open(pth)
106 106
 	if err != nil {
107 107
 		return err
108 108
 	}
109
+	defer jsonSource.Close()
110
+
111
+	dec := json.NewDecoder(jsonSource)
112
+
109 113
 	// Load container settings
110 114
 	// udp broke compat of docker.PortMapping, but it's not used when loading a container, we can skip it
111
-	if err := json.Unmarshal(data, container); err != nil && !strings.Contains(err.Error(), "docker.PortMapping") {
115
+	if err := dec.Decode(container); err != nil && !strings.Contains(err.Error(), "docker.PortMapping") {
112 116
 		return err
113 117
 	}
114 118