8
8
9
9
yaml "github.com/cloudfoundry-incubator/candiedyaml"
10
10
"github.com/docker/docker/pkg/urlutil"
11
+ "github.com/docker/libcompose/utils"
12
+ composeYaml "github.com/docker/libcompose/yaml"
11
13
)
12
14
13
15
var (
@@ -86,7 +88,13 @@ func readEnvFile(resourceLookup ResourceLookup, inFile string, serviceData RawSe
86
88
if _ , ok := serviceData ["env_file" ]; ! ok {
87
89
return serviceData , nil
88
90
}
89
- envFiles := serviceData ["env_file" ].([]interface {})
91
+
92
+ var envFiles composeYaml.Stringorslice
93
+
94
+ if err := utils .Convert (serviceData ["env_file" ], & envFiles ); err != nil {
95
+ return nil , err
96
+ }
97
+
90
98
if len (envFiles ) == 0 {
91
99
return serviceData , nil
92
100
}
@@ -95,13 +103,16 @@ func readEnvFile(resourceLookup ResourceLookup, inFile string, serviceData RawSe
95
103
return nil , fmt .Errorf ("Can not use env_file in file %s no mechanism provided to load files" , inFile )
96
104
}
97
105
98
- var vars []interface {}
106
+ var vars composeYaml.MaporEqualSlice
107
+
99
108
if _ , ok := serviceData ["environment" ]; ok {
100
- vars = serviceData ["environment" ].([]interface {})
109
+ if err := utils .Convert (serviceData ["environment" ], & vars ); err != nil {
110
+ return nil , err
111
+ }
101
112
}
102
113
103
114
for i := len (envFiles ) - 1 ; i >= 0 ; i -- {
104
- envFile := envFiles [i ].( string )
115
+ envFile := envFiles [i ]
105
116
content , _ , err := resourceLookup .Lookup (envFile , inFile )
106
117
if err != nil {
107
118
return nil , err
@@ -118,7 +129,7 @@ func readEnvFile(resourceLookup ResourceLookup, inFile string, serviceData RawSe
118
129
119
130
found := false
120
131
for _ , v := range vars {
121
- if strings .HasPrefix (v .( string ) , key ) {
132
+ if strings .HasPrefix (v , key ) {
122
133
found = true
123
134
break
124
135
}
0 commit comments