gitlab.com/jfprevost/gitlab-runner-notlscheck@v11.11.4+incompatible/executors/docker/volume_manager_adapter.go (about) 1 package docker 2 3 import ( 4 "context" 5 6 "github.com/docker/docker/api/types/container" 7 8 "gitlab.com/gitlab-org/gitlab-runner/executors/docker/internal/volumes" 9 docker_helpers "gitlab.com/gitlab-org/gitlab-runner/helpers/docker" 10 "gitlab.com/gitlab-org/gitlab-runner/helpers/featureflags" 11 ) 12 13 type volumesManagerAdapter struct { 14 docker_helpers.Client 15 16 e *executor 17 } 18 19 func (a *volumesManagerAdapter) LabelContainer(container *container.Config, containerType string, otherLabels ...string) { 20 container.Labels = a.e.getLabels(containerType, otherLabels...) 21 } 22 23 func (a *volumesManagerAdapter) WaitForContainer(id string) error { 24 return a.e.waitForContainer(a.e.Context, id) 25 } 26 27 func (a *volumesManagerAdapter) RemoveContainer(ctx context.Context, id string) error { 28 return a.e.removeContainer(ctx, id) 29 } 30 31 func (e *executor) checkOutdatedHelperImage() bool { 32 return !e.Build.IsFeatureFlagOn(featureflags.DockerHelperImageV2) && e.Config.Docker.HelperImage != "" 33 } 34 35 var createVolumesManager = func(e *executor) (volumes.Manager, error) { 36 adapter := &volumesManagerAdapter{ 37 Client: e.client, 38 e: e, 39 } 40 41 helperImage, err := e.getPrebuiltImage() 42 if err != nil { 43 return nil, err 44 } 45 46 ccManager := volumes.NewCacheContainerManager( 47 e.Context, 48 &e.BuildLogger, 49 adapter, 50 helperImage, 51 e.checkOutdatedHelperImage(), 52 ) 53 54 config := volumes.ManagerConfig{ 55 CacheDir: e.Config.Docker.CacheDir, 56 BaseContainerPath: e.Build.FullProjectDir(), 57 UniqueName: e.Build.ProjectUniqueName(), 58 DisableCache: e.Config.Docker.DisableCache, 59 } 60 61 volumesManager := volumes.NewManager(&e.BuildLogger, e.volumeParser, ccManager, config) 62 63 return volumesManager, nil 64 } 65 66 func (e *executor) createVolumesManager() error { 67 vm, err := createVolumesManager(e) 68 if err != nil { 69 return err 70 } 71 72 e.volumesManager = vm 73 74 return nil 75 }