Make the FROM instruction pull the image if not existing
This commit is contained in:
parent
4ebec08add
commit
924b61328c
1 changed files with 20 additions and 1 deletions
21
builder.go
21
builder.go
|
@ -198,8 +198,27 @@ func (builder *Builder) Build(dockerfile io.Reader, stdout io.Writer) (*Image, e
|
|||
fmt.Fprintf(stdout, "FROM %s\n", arguments)
|
||||
image, err = builder.runtime.repositories.LookupImage(arguments)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
if builder.runtime.graph.IsNotExist(err) {
|
||||
if builder.runtime.graph.LookupRemoteImage(arguments, builder.runtime.authConfig) {
|
||||
if err := builder.runtime.graph.PullImage(stdout, arguments, builder.runtime.authConfig); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
// FIXME: Allow pull repo:tag
|
||||
if err := builder.runtime.graph.PullRepository(stdout, arguments, "", builder.runtime.repositories, builder.runtime.authConfig); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
image, err = builder.runtime.repositories.LookupImage(arguments)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
break
|
||||
case "run":
|
||||
fmt.Fprintf(stdout, "RUN %s\n", arguments)
|
||||
|
|
Loading…
Add table
Reference in a new issue