@ -3,6 +3,7 @@ package docker
import (
"context"
"fmt"
"log"
"os"
"path/filepath"
@ -18,22 +19,32 @@ type StepTempDir struct {
// ConfigTmpDir returns the configuration tmp directory for Docker
func ConfigTmpDir ( ) ( string , error ) {
if tmpdir := os . Getenv ( "PACKER_TMP_DIR" ) ; tmpdir != "" {
return filepath . Abs ( tmpdir )
}
configdir , err := packer . ConfigDir ( )
if err != nil {
return "" , err
}
if tmpdir := os . Getenv ( "PACKER_TMP_DIR" ) ; tmpdir != "" {
// override the config dir with tmp dir. Still stat it and mkdirall if
// necessary.
fp , err := filepath . Abs ( tmpdir )
log . Printf ( "found PACKER_TMP_DIR env variable; setting tmpdir to %s" , fp )
if err != nil {
return "" , err
}
configdir = fp
}
td := filepath . Join ( configdir , "tmp" )
_ , err = os . Stat ( td )
if os . IsNotExist ( err ) {
log . Printf ( "Creating tempdir in %s" , td )
if err = os . MkdirAll ( td , 0755 ) ; err != nil {
return "" , err
}
} else if err != nil {
return "" , err
}
log . Printf ( "Set Packer temp dir to %s" , td )
return td , nil
}