@@ -57,6 +57,7 @@ type ChrootEnv struct {
5757 ChrootEnvRoot string
5858 ChrootImageBuildDir string
5959 ChrootBuilder chrootbuild.ChrootBuilderInterface
60+ buildTemplate * config.ImageTemplate
6061 TargetOs string // Store targetOs for package manager selection
6162}
6263
@@ -89,6 +90,13 @@ func (chrootEnv *ChrootEnv) GetChrootEnvRoot() string {
8990 return chrootEnv .ChrootEnvRoot
9091}
9192
93+ func (chrootEnv * ChrootEnv ) SetBuildTemplate (template * config.ImageTemplate ) {
94+ chrootEnv .buildTemplate = template
95+ if templateAwareBuilder , ok := chrootEnv .ChrootBuilder .(interface { SetBuildTemplate (* config.ImageTemplate ) }); ok {
96+ templateAwareBuilder .SetBuildTemplate (template )
97+ }
98+ }
99+
92100func (chrootEnv * ChrootEnv ) GetChrootImageBuildDir () string {
93101 return chrootEnv .ChrootImageBuildDir
94102}
@@ -392,6 +400,9 @@ func (chrootEnv *ChrootEnv) InitChrootEnv(targetOs, targetDist, targetArch strin
392400 chrootBuildDir := chrootEnv .ChrootBuilder .GetChrootBuildDir ()
393401 chrootEnvTarPath := filepath .Join (chrootBuildDir , "chrootenv.tar.gz" )
394402 if _ , err := os .Stat (chrootEnvTarPath ); os .IsNotExist (err ) {
403+ if templateAwareBuilder , ok := chrootEnv .ChrootBuilder .(interface { SetBuildTemplate (* config.ImageTemplate ) }); ok {
404+ templateAwareBuilder .SetBuildTemplate (chrootEnv .buildTemplate )
405+ }
395406 // Build chroot environment tarball
396407 if err = chrootEnv .ChrootBuilder .BuildChrootEnv (targetOs , targetDist , targetArch ); err != nil {
397408 return fmt .Errorf ("failed to build chroot environment: %w" , err )
0 commit comments