9
9
"path/filepath"
10
10
"strings"
11
11
12
+ "github.com/compose-spec/compose-ref/internal"
12
13
"github.com/docker/docker/api/types/filters"
13
14
"github.com/docker/docker/api/types/mount"
14
15
"github.com/docker/docker/errdefs"
@@ -167,7 +168,7 @@ func doUp(project string, config *compose.Config) error {
167
168
168
169
diverged := false
169
170
for _ , cntr := range containers {
170
- config := cntr .Labels [labelConfig ]
171
+ config := cntr .Labels [internal . LabelConfig ]
171
172
if config != expected {
172
173
diverged = true
173
174
break
@@ -204,7 +205,7 @@ func doUp(project string, config *compose.Config) error {
204
205
func removeContainers (cli * client.Client , containers []types.Container ) error {
205
206
ctx := context .Background ()
206
207
for _ , c := range containers {
207
- if serviceName , ok := c .Labels [labelService ]; ok {
208
+ if serviceName , ok := c .Labels [internal . LabelService ]; ok {
208
209
fmt .Printf ("Stopping containers for service %s ... " , serviceName )
209
210
}
210
211
err := cli .ContainerStop (ctx , c .ID , nil )
@@ -236,14 +237,14 @@ func createService(cli *client.Client, project string, prjDir string, s compose.
236
237
for k , v := range s .Labels {
237
238
labels [k ] = v
238
239
}
239
- labels [labelProject ] = project
240
- labels [labelService ] = s .Name
240
+ labels [internal . LabelProject ] = project
241
+ labels [internal . LabelService ] = s .Name
241
242
242
243
b , err := yaml .Marshal (s )
243
244
if err != nil {
244
245
return err
245
246
}
246
- labels [labelConfig ] = string (b )
247
+ labels [internal . LabelConfig ] = string (b )
247
248
248
249
fmt .Printf ("Creating container for service %s ... " , s .Name )
249
250
networkMode := networkMode (s , networks )
@@ -330,8 +331,8 @@ func createNetwork(cli *client.Client, project string, networkDefaultName string
330
331
if createOptions .Labels == nil {
331
332
createOptions .Labels = map [string ]string {}
332
333
}
333
- createOptions .Labels [labelProject ] = project
334
- createOptions .Labels [labelNetwork ] = name
334
+ createOptions .Labels [internal . LabelProject ] = project
335
+ createOptions .Labels [internal . LabelNetwork ] = name
335
336
336
337
if netConfig .External .External {
337
338
_ , err := cli .NetworkInspect (context .Background (), name , types.NetworkInspectOptions {})
@@ -409,8 +410,8 @@ func createVolume(cli *client.Client, project string, volumeDefaultName string,
409
410
Driver : volumeConfig .Driver ,
410
411
DriverOpts : volumeConfig .DriverOpts ,
411
412
Labels : map [string ]string {
412
- labelProject : project ,
413
- labelVolume : name ,
413
+ internal . LabelProject : project ,
414
+ internal . LabelVolume : name ,
414
415
},
415
416
})
416
417
@@ -468,14 +469,14 @@ func buildTmpfsOptions(tmpfs *compose.ServiceVolumeTmpfs) *mount.TmpfsOptions {
468
469
func collectContainers (cli * client.Client , project string ) (map [string ][]types.Container , error ) {
469
470
containerList , err := cli .ContainerList (context .Background (), types.ContainerListOptions {
470
471
All : true ,
471
- Filters : filters .NewArgs (filters .Arg ("label" , labelProject + "=" + project )),
472
+ Filters : filters .NewArgs (filters .Arg ("label" , internal . LabelProject + "=" + project )),
472
473
})
473
474
if err != nil {
474
475
return nil , err
475
476
}
476
477
containers := map [string ][]types.Container {}
477
478
for _ , c := range containerList {
478
- service := c .Labels [labelService ]
479
+ service := c .Labels [internal . LabelService ]
479
480
l , ok := containers [service ]
480
481
if ! ok {
481
482
l = []types.Container {c }
@@ -489,14 +490,14 @@ func collectContainers(cli *client.Client, project string) (map[string][]types.C
489
490
490
491
func collectNetworks (cli * client.Client , project string ) (map [string ][]types.NetworkResource , error ) {
491
492
networkList , err := cli .NetworkList (context .Background (), types.NetworkListOptions {
492
- Filters : filters .NewArgs (filters .Arg ("label" , labelProject + "=" + project )),
493
+ Filters : filters .NewArgs (filters .Arg ("label" , internal . LabelProject + "=" + project )),
493
494
})
494
495
if err != nil {
495
496
return nil , err
496
497
}
497
498
networks := map [string ][]types.NetworkResource {}
498
499
for _ , r := range networkList {
499
- resource := r .Labels [labelNetwork ]
500
+ resource := r .Labels [internal . LabelNetwork ]
500
501
l , ok := networks [resource ]
501
502
if ! ok {
502
503
l = []types.NetworkResource {r }
@@ -510,14 +511,14 @@ func collectNetworks(cli *client.Client, project string) (map[string][]types.Net
510
511
}
511
512
512
513
func collectVolumes (cli * client.Client , project string ) (map [string ][]types.Volume , error ) {
513
- filter := filters .NewArgs (filters .Arg ("label" , labelProject + "=" + project ))
514
+ filter := filters .NewArgs (filters .Arg ("label" , internal . LabelProject + "=" + project ))
514
515
list , err := cli .VolumeList (context .Background (), filter )
515
516
if err != nil {
516
517
return nil , err
517
518
}
518
519
volumes := map [string ][]types.Volume {}
519
520
for _ , v := range list .Volumes {
520
- resource := v .Labels [labelVolume ]
521
+ resource := v .Labels [internal . LabelVolume ]
521
522
l , ok := volumes [resource ]
522
523
if ! ok {
523
524
l = []types.Volume {* v }
@@ -699,12 +700,3 @@ func buildContainerBindingOptions(serviceConfig compose.ServiceConfig) nat.PortM
699
700
}
700
701
return bindings
701
702
}
702
-
703
- const (
704
- labelNamespace = "io.compose-spec"
705
- labelService = labelNamespace + ".service"
706
- labelNetwork = labelNamespace + ".network"
707
- labelVolume = labelNamespace + ".volume"
708
- labelProject = labelNamespace + ".project"
709
- labelConfig = labelNamespace + ".config"
710
- )
0 commit comments