mirror of
https://github.com/containers/podman.git
synced 2025-10-18 03:33:32 +08:00
Fix up handling of environment variables
The way docker works is if a user specifies a non `-e Name=Value`, IE just a `-e Name`, then the environment variable Name from the clients OS.ENV is used. Also by default Docker containers run with the HOSTNAME environment set to the HOSTNAME specified for the container. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> Closes: #21 Approved by: baude
This commit is contained in:

committed by
Atomic Bot

parent
3b72af6147
commit
57599f0075
@ -7,44 +7,14 @@ import (
|
||||
)
|
||||
|
||||
func getAllLabels(labelFile, inputLabels []string) (map[string]string, error) {
|
||||
var labelValues []string
|
||||
labels := make(map[string]string)
|
||||
labelValues, labelErr := readKVStrings(labelFile, inputLabels)
|
||||
labelErr := readKVStrings(labels, labelFile, inputLabels)
|
||||
if labelErr != nil {
|
||||
return labels, errors.Wrapf(labelErr, "unable to process labels from --label and label-file")
|
||||
}
|
||||
// Process KEY=VALUE stringslice in string map for WithLabels func
|
||||
if len(labelValues) > 0 {
|
||||
for _, i := range labelValues {
|
||||
spliti := strings.Split(i, "=")
|
||||
if len(spliti) < 2 {
|
||||
return labels, errors.Errorf("labels must be in KEY=VALUE format: %s is invalid", i)
|
||||
}
|
||||
labels[spliti[0]] = spliti[1]
|
||||
}
|
||||
}
|
||||
return labels, nil
|
||||
}
|
||||
|
||||
func getAllEnvironmentVariables(envFiles, envInput []string) ([]string, error) {
|
||||
env, err := readKVStrings(envFiles, envInput)
|
||||
if err != nil {
|
||||
return []string{}, errors.Wrapf(err, "unable to process variables from --env and --env-file")
|
||||
}
|
||||
// Add default environment variables if nothing defined
|
||||
if len(env) == 0 {
|
||||
env = append(env, defaultEnvVariables...)
|
||||
}
|
||||
// Each environment variable must be in the K=V format
|
||||
for _, i := range env {
|
||||
spliti := strings.Split(i, "=")
|
||||
if len(spliti) != 2 {
|
||||
return env, errors.Errorf("environment variables must be in the format KEY=VALUE: %s is invalid", i)
|
||||
}
|
||||
}
|
||||
return env, nil
|
||||
}
|
||||
|
||||
func convertStringSliceToMap(strSlice []string, delimiter string) (map[string]string, error) {
|
||||
sysctl := make(map[string]string)
|
||||
for _, inputSysctl := range strSlice {
|
||||
|
Reference in New Issue
Block a user