code: func (s *Service) Run(ctx context.Context, commandParts []string, options options.Run) (int, error) {
  	err := s.ensureImageExists(ctx, false, false)
  	if err != nil {
  		return -1, err
  	}
  
  	client := s.clientFactory.Create(s)
  
  	namer, err := NewNamer(ctx, client, s.project.Name, s.name, true)
  	if err != nil {
  		return -1, err
  	}
  
  	configOverride := &config.ServiceConfig{Command: commandParts, Tty: !options.DisableTty, StdinOpen: !options.DisableTty}
  
  	c, err := s.createContainer(ctx, namer, "", configOverride, true)
  	if err != nil {
  		return -1, err
  	}
  
  	if err := s.connectContainerToNetworks(ctx, c, true); err != nil {
  		return -1, err
  	}
  
  	if options.Detached {
  		logrus.Infof("%s", c.Name())
  		return 0, c.Start(ctx)
  	}
  	return c.Run(ctx, configOverride)
  }
docs: // Run implements Service.Run. It runs a one of command within the service container.
  // It always create a new container.