mirror of
https://github.com/mudler/luet.git
synced 2025-09-02 15:54:39 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4e675723e8 | ||
|
dd00d491b9 | ||
|
26b94888c3 | ||
|
01e635bd78 |
@@ -35,7 +35,7 @@ var cfgFile string
|
|||||||
var Verbose bool
|
var Verbose bool
|
||||||
|
|
||||||
const (
|
const (
|
||||||
LuetCLIVersion = "0.6"
|
LuetCLIVersion = "0.6.1"
|
||||||
LuetEnvPrefix = "LUET"
|
LuetEnvPrefix = "LUET"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -272,12 +272,6 @@ func (cs *LuetCompiler) compileWithImage(image, buildertaggedImage, packageImage
|
|||||||
packageImage = cs.ImageRepository + "-" + p.GetPackage().GetFingerPrint()
|
packageImage = cs.ImageRepository + "-" + p.GetPackage().GetFingerPrint()
|
||||||
}
|
}
|
||||||
|
|
||||||
if cs.Options.PullFirst {
|
|
||||||
//Best effort pull
|
|
||||||
cs.Backend.DownloadImage(CompilerBackendOptions{ImageName: buildertaggedImage})
|
|
||||||
cs.Backend.DownloadImage(CompilerBackendOptions{ImageName: packageImage})
|
|
||||||
}
|
|
||||||
|
|
||||||
Info(pkgTag, "Generating :whale: definition for builder image from", image)
|
Info(pkgTag, "Generating :whale: definition for builder image from", image)
|
||||||
|
|
||||||
// First we create the builder image
|
// First we create the builder image
|
||||||
@@ -289,19 +283,25 @@ func (cs *LuetCompiler) compileWithImage(image, buildertaggedImage, packageImage
|
|||||||
Destination: p.Rel(p.GetPackage().GetFingerPrint() + "-builder.image.tar"),
|
Destination: p.Rel(p.GetPackage().GetFingerPrint() + "-builder.image.tar"),
|
||||||
}
|
}
|
||||||
|
|
||||||
err = cs.Backend.BuildImage(builderOpts)
|
buildBuilderImage := true
|
||||||
if err != nil {
|
if cs.Options.PullFirst {
|
||||||
return nil, errors.Wrap(err, "Could not build image: "+image+" "+builderOpts.DockerFileName)
|
if err := cs.Backend.DownloadImage(builderOpts); err == nil {
|
||||||
|
buildBuilderImage = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = cs.Backend.ExportImage(builderOpts)
|
if buildBuilderImage {
|
||||||
if err != nil {
|
if err = cs.Backend.BuildImage(builderOpts); err != nil {
|
||||||
|
return nil, errors.Wrap(err, "Could not build image: "+image+" "+builderOpts.DockerFileName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = cs.Backend.ExportImage(builderOpts); err != nil {
|
||||||
return nil, errors.Wrap(err, "Could not export image")
|
return nil, errors.Wrap(err, "Could not export image")
|
||||||
}
|
}
|
||||||
|
|
||||||
if cs.Options.Push {
|
if cs.Options.Push && buildBuilderImage {
|
||||||
err = cs.Backend.Push(builderOpts)
|
if err = cs.Backend.Push(builderOpts); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "Could not push image: "+image+" "+builderOpts.DockerFileName)
|
return nil, errors.Wrap(err, "Could not push image: "+image+" "+builderOpts.DockerFileName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -320,14 +320,25 @@ func (cs *LuetCompiler) compileWithImage(image, buildertaggedImage, packageImage
|
|||||||
// return nil, errors.Wrap(err, "Could not export image to tar")
|
// return nil, errors.Wrap(err, "Could not export image to tar")
|
||||||
// }
|
// }
|
||||||
// } else {
|
// } else {
|
||||||
|
buildPackageImage := true
|
||||||
|
if cs.Options.PullFirst {
|
||||||
|
//Best effort pull
|
||||||
|
if err := cs.Backend.DownloadImage(runnerOpts); err == nil {
|
||||||
|
buildPackageImage = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if buildPackageImage {
|
||||||
if err := cs.Backend.BuildImage(runnerOpts); err != nil {
|
if err := cs.Backend.BuildImage(runnerOpts); err != nil {
|
||||||
return nil, errors.Wrap(err, "Failed building image for "+runnerOpts.ImageName+" "+runnerOpts.DockerFileName)
|
return nil, errors.Wrap(err, "Failed building image for "+runnerOpts.ImageName+" "+runnerOpts.DockerFileName)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := cs.Backend.ExportImage(runnerOpts); err != nil {
|
if err := cs.Backend.ExportImage(runnerOpts); err != nil {
|
||||||
return nil, errors.Wrap(err, "Failed exporting image")
|
return nil, errors.Wrap(err, "Failed exporting image")
|
||||||
}
|
}
|
||||||
|
|
||||||
if cs.Options.Push {
|
if cs.Options.Push && buildPackageImage {
|
||||||
err = cs.Backend.Push(runnerOpts)
|
err = cs.Backend.Push(runnerOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "Could not push image: "+image+" "+builderOpts.DockerFileName)
|
return nil, errors.Wrap(err, "Could not push image: "+image+" "+builderOpts.DockerFileName)
|
||||||
|
@@ -530,14 +530,21 @@ func (re Repositories) ResolveSelectors(p []pkg.Package) []pkg.Package {
|
|||||||
var matches []pkg.Package
|
var matches []pkg.Package
|
||||||
PACKAGE:
|
PACKAGE:
|
||||||
for _, pack := range p {
|
for _, pack := range p {
|
||||||
|
REPOSITORY:
|
||||||
for _, r := range re {
|
for _, r := range re {
|
||||||
if pack.IsSelector() {
|
if pack.IsSelector() {
|
||||||
c, err := r.GetTree().GetDatabase().FindPackageCandidate(pack)
|
c, err := r.GetTree().GetDatabase().FindPackageCandidate(pack)
|
||||||
|
// If FindPackageCandidate returns the same package, it means it couldn't find one.
|
||||||
|
// Skip this repository and keep looking.
|
||||||
|
if c.String() == pack.String() {
|
||||||
|
continue REPOSITORY
|
||||||
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
matches = append(matches, c)
|
matches = append(matches, c)
|
||||||
continue PACKAGE
|
continue PACKAGE
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// If it's not a selector, just append it
|
||||||
matches = append(matches, pack)
|
matches = append(matches, pack)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user