@@ -91,6 +91,7 @@ type PackageSpec struct {
91
91
License string `yaml:"license,omitempty"`
92
92
URL string `yaml:"url,omitempty"`
93
93
Description string `yaml:"description,omitempty"`
94
+ DockerVariant DockerVariant `yaml:"docker_variant,omitempty"`
94
95
PreInstallScript string `yaml:"pre_install_script,omitempty"`
95
96
PostInstallScript string `yaml:"post_install_script,omitempty"`
96
97
PostRmScript string `yaml:"post_rm_script,omitempty"`
@@ -271,11 +272,7 @@ func (typ PackageType) AddFileExtension(file string) string {
271
272
func (typ PackageType ) PackagingDir (home string , target BuildPlatform , spec PackageSpec ) (string , error ) {
272
273
root := home
273
274
if typ == Docker {
274
- imageName , err := spec .ImageName ()
275
- if err != nil {
276
- return "" , err
277
- }
278
- root = filepath .Join (root , imageName )
275
+ root = filepath .Join (root , spec .ImageName ())
279
276
}
280
277
281
278
targetPath := typ .AddFileExtension (spec .Name + "-" + target .GOOS () + "-" + target .Arch ())
@@ -467,17 +464,13 @@ func (s PackageSpec) Evaluate(args ...map[string]interface{}) PackageSpec {
467
464
return s
468
465
}
469
466
470
- // ImageName computes the image name from the spec. A template for the image
471
- // name can be configured by adding image_name to extra_vars.
472
- func (s PackageSpec ) ImageName () (string , error ) {
473
- if name := s .ExtraVars ["image_name" ]; name != "" {
474
- imageName , err := s .Expand (name )
475
- if err != nil {
476
- return "" , fmt .Errorf ("failed to expand image_name: %w" , err )
477
- }
478
- return imageName , nil
467
+ // ImageName computes the image name from the spec.
468
+ func (s PackageSpec ) ImageName () string {
469
+ if s .DockerVariant == Basic {
470
+ // no suffix for basic docker variant
471
+ return s .Name
479
472
}
480
- return s .Name , nil
473
+ return fmt . Sprintf ( "%s-%s" , s .Name , s . DockerVariant )
481
474
}
482
475
483
476
func copyInstallScript (spec PackageSpec , script string , local * string ) error {
0 commit comments