github.com/rawahars/moby@v24.0.4+incompatible/opts/env.go (about) 1 package opts // import "github.com/docker/docker/opts" 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/pkg/errors" 8 ) 9 10 // ValidateEnv validates an environment variable and returns it. 11 // If no value is specified, it obtains its value from the current environment 12 // 13 // As on ParseEnvFile and related to #16585, environment variable names 14 // are not validate whatsoever, it's up to application inside docker 15 // to validate them or not. 16 // 17 // The only validation here is to check if name is empty, per #25099 18 func ValidateEnv(val string) (string, error) { 19 k, _, ok := strings.Cut(val, "=") 20 if k == "" { 21 return "", errors.New("invalid environment variable: " + val) 22 } 23 if ok { 24 return val, nil 25 } 26 if envVal, ok := os.LookupEnv(k); ok { 27 return k + "=" + envVal, nil 28 } 29 return val, nil 30 }