MCPcopy
hub / github.com/docker/compose / newModelAPI

Method newModelAPI

pkg/compose/model.go:81–105  ·  pkg/compose/model.go::composeService.newModelAPI
(project *types.Project)

Source from the content-addressed store, hash-verified

79}
80
81func (s *composeService) newModelAPI(project *types.Project) (*modelAPI, error) {
82 dockerModel, err := manager.GetPlugin("model", s.dockerCli, &cobra.Command{})
83 if err != nil {
84 if errdefs.IsNotFound(err) {
85 return nil, fmt.Errorf("'models' support requires Docker Model plugin")
86 }
87 return nil, err
88 }
89 if dockerModel.Err != nil {
90 return nil, fmt.Errorf("failed to load Docker Model plugin: %w", dockerModel.Err)
91 }
92 endpoint, cleanup, err := s.propagateDockerEndpoint()
93 if err != nil {
94 return nil, err
95 }
96 return &modelAPI{
97 path: dockerModel.Path,
98 version: dockerModel.Version,
99 prepare: func(ctx context.Context, cmd *exec.Cmd) error {
100 return s.prepareShellOut(ctx, project.Environment, cmd)
101 },
102 cleanup: cleanup,
103 env: append(project.Environment.Values(), endpoint...),
104 }, nil
105}
106
107func (m *modelAPI) Close() {
108 m.cleanup()

Callers 1

ensureModelsMethod · 0.95

Calls 2

prepareShellOutMethod · 0.95

Tested by

no test coverage detected