Add support to fetch yaml file with http

For example you can do
```
moby build https://raw.githubusercontent.com/linuxkit/linuxkit/master/linuxkit.yml
```

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2017-06-12 18:11:21 +02:00
parent 90fd3e7e41
commit d7ca674ea6

View File

@ -8,6 +8,7 @@ import (
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"net/http"
"os" "os"
"path" "path"
"path/filepath" "path/filepath"
@ -198,6 +199,18 @@ func build(args []string) {
if err != nil { if err != nil {
log.Fatalf("Cannot read stdin: %v", err) log.Fatalf("Cannot read stdin: %v", err)
} }
} else if strings.HasPrefix(arg, "http://") || strings.HasPrefix(arg, "https://") {
buffer := new(bytes.Buffer)
response, err := http.Get(arg)
if err != nil {
log.Fatal("Cannot fetch remote yaml file: %v", err)
}
defer response.Body.Close()
_, err = io.Copy(buffer, response.Body)
if err != nil {
log.Fatalf("Error reading http body: %v", err)
}
config = buffer.Bytes()
} else { } else {
var err error var err error
config, err = ioutil.ReadFile(conf) config, err = ioutil.ReadFile(conf)