(ctx context.Context, project *types.Project, serviceName string, x types.ServiceHook, eg *errgroup.Group)
| 608 | } |
| 609 | |
| 610 | func (s *composeService) exec(ctx context.Context, project *types.Project, serviceName string, x types.ServiceHook, eg *errgroup.Group) error { |
| 611 | containers, err := s.getContainers(ctx, project.Name, oneOffExclude, false, serviceName) |
| 612 | if err != nil { |
| 613 | return err |
| 614 | } |
| 615 | for _, c := range containers { |
| 616 | eg.Go(func() error { |
| 617 | exec := ccli.NewExecOptions() |
| 618 | exec.User = x.User |
| 619 | exec.Privileged = x.Privileged |
| 620 | exec.Command = x.Command |
| 621 | exec.Workdir = x.WorkingDir |
| 622 | exec.DetachKeys = s.configFile().DetachKeys |
| 623 | for _, v := range x.Environment.ToMapping().Values() { |
| 624 | err := exec.Env.Set(v) |
| 625 | if err != nil { |
| 626 | return err |
| 627 | } |
| 628 | } |
| 629 | return ccli.RunExec(ctx, s.dockerCli, c.ID, exec) |
| 630 | }) |
| 631 | } |
| 632 | return nil |
| 633 | } |
| 634 | |
| 635 | func (s *composeService) rebuild(ctx context.Context, project *types.Project, services []string, options api.WatchOptions) error { |
| 636 | options.LogTo.Log(api.WatchLogger, fmt.Sprintf("Rebuilding service(s) %q after changes were detected...", services)) |
no test coverage detected