Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Commit c3a000b

Browse files
committed
Add configure command to support Compose models implementation
Signed-off-by: Jacob Howard <[email protected]>
1 parent b67aeba commit c3a000b

File tree

388 files changed

+51745
-24779
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

388 files changed

+51745
-24779
lines changed

commands/configure.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package commands
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/docker/model-runner/pkg/inference/scheduling"
7+
"github.com/spf13/cobra"
8+
)
9+
10+
func newConfigureCmd() *cobra.Command {
11+
var opts scheduling.ConfigureRequest
12+
13+
c := &cobra.Command{
14+
Use: "configure [--context-size=<n>] MODEL [-- <runtime-flags...>]",
15+
Short: "Configure runtime options for a model",
16+
Args: func(cmd *cobra.Command, args []string) error {
17+
if len(args) < 1 {
18+
return fmt.Errorf(
19+
"Model specification is required.\n\n" +
20+
"See 'docker model configure --help' for more information",
21+
)
22+
}
23+
opts.Model = args[0]
24+
opts.RuntimeFlags = args[1:]
25+
return nil
26+
},
27+
RunE: func(cmd *cobra.Command, args []string) error {
28+
return desktopClient.ConfigureBackend(opts)
29+
},
30+
}
31+
32+
c.Flags().Int64Var(&opts.ContextSize, "context-size", -1, "context size (in tokens)")
33+
return c
34+
}

commands/root.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ func NewRootCmd(cli *command.DockerCli) *cobra.Command {
108108
newTagCmd(),
109109
newInstallRunner(),
110110
newUninstallRunner(),
111+
newConfigureCmd(),
111112
newPSCmd(),
112113
newDFCmd(),
113114
newUnloadCmd(),

docs/reference/docker_model.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ long: |-
66
pname: docker
77
plink: docker.yaml
88
cname:
9+
- docker model configure
910
- docker model df
1011
- docker model inspect
1112
- docker model install-runner
@@ -23,6 +24,7 @@ cname:
2324
- docker model unload
2425
- docker model version
2526
clink:
27+
- docker_model_configure.yaml
2628
- docker_model_df.yaml
2729
- docker_model_inspect.yaml
2830
- docker_model_install-runner.yaml
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
command: docker model configure
2+
short: Configure runtime options for a model
3+
long: Configure runtime options for a model
4+
usage: docker model configure [--context-size=<n>] MODEL [-- <runtime-flags...>]
5+
pname: docker model
6+
plink: docker_model.yaml
7+
options:
8+
- option: context-size
9+
value_type: int64
10+
default_value: "-1"
11+
description: context size (in tokens)
12+
deprecated: false
13+
hidden: false
14+
experimental: false
15+
experimentalcli: false
16+
kubernetes: false
17+
swarm: false
18+
deprecated: false
19+
hidden: false
20+
experimental: false
21+
experimentalcli: true
22+
kubernetes: false
23+
swarm: false
24+

docs/reference/model.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Docker Model Runner (EXPERIMENTAL)
77

88
| Name | Description |
99
|:------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|
10+
| [`configure`](model_configure.md) | Configure runtime options for a model |
1011
| [`df`](model_df.md) | Show Docker Model Runner disk usage |
1112
| [`inspect`](model_inspect.md) | Display detailed information on one model |
1213
| [`install-runner`](model_install-runner.md) | Install Docker Model Runner (Docker Engine only) |

docs/reference/model_configure.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# docker model configure
2+
3+
<!---MARKER_GEN_START-->
4+
Configure runtime options for a model
5+
6+
### Options
7+
8+
| Name | Type | Default | Description |
9+
|:-----------------|:--------|:--------|:-------------------------|
10+
| `--context-size` | `int64` | `-1` | context size (in tokens) |
11+
12+
13+
<!---MARKER_GEN_END-->
14+

go.mod

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,62 @@
11
module github.com/docker/model-cli
22

3-
go 1.23.7
3+
go 1.24
4+
5+
toolchain go1.24.4
46

57
require (
6-
github.com/docker/cli v28.2.2+incompatible
8+
github.com/docker/cli v28.3.0+incompatible
79
github.com/docker/cli-docs-tool v0.10.0
810
github.com/docker/docker v28.2.2+incompatible
911
github.com/docker/go-connections v0.5.0
1012
github.com/docker/go-units v0.5.0
11-
github.com/docker/model-distribution v0.0.0-20250512190053-b3792c042d57
12-
github.com/docker/model-runner v0.0.0-20250613083629-6b8c3b816f00
13-
github.com/google/go-containerregistry v0.20.3
13+
github.com/docker/model-distribution v0.0.0-20250620111407-b631ab263648
14+
github.com/docker/model-runner v0.0.0-20250626211904-cce6a71cc9d6
15+
github.com/google/go-containerregistry v0.20.6
1416
github.com/mattn/go-isatty v0.0.17
1517
github.com/nxadm/tail v1.4.8
1618
github.com/olekukonko/tablewriter v0.0.5
1719
github.com/pkg/errors v0.9.1
1820
github.com/spf13/cobra v1.9.1
1921
github.com/spf13/pflag v1.0.6
2022
github.com/stretchr/testify v1.10.0
21-
go.opentelemetry.io/otel v1.35.0
23+
go.opentelemetry.io/otel v1.37.0
2224
go.uber.org/mock v0.5.0
23-
golang.org/x/sync v0.12.0
25+
golang.org/x/sync v0.15.0
2426
)
2527

2628
require (
27-
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
2829
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
2930
github.com/Microsoft/go-winio v0.6.2 // indirect
3031
github.com/StackExchange/wmi v1.2.1 // indirect
3132
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
32-
github.com/containerd/containerd/v2 v2.0.4 // indirect
33+
github.com/containerd/containerd/v2 v2.1.3 // indirect
3334
github.com/containerd/errdefs v1.0.0 // indirect
3435
github.com/containerd/errdefs/pkg v0.3.0 // indirect
3536
github.com/containerd/log v0.1.0 // indirect
3637
github.com/containerd/platforms v1.0.0-rc.1 // indirect
3738
github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect
38-
github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
39+
github.com/containerd/typeurl/v2 v2.2.3 // indirect
40+
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
3941
github.com/creack/pty v1.1.24 // indirect
4042
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
4143
github.com/distribution/reference v0.6.0 // indirect
4244
github.com/docker/distribution v2.8.3+incompatible // indirect
4345
github.com/docker/docker-credential-helpers v0.9.3 // indirect
4446
github.com/felixge/httpsnoop v1.0.4 // indirect
45-
github.com/fsnotify/fsnotify v1.7.0 // indirect
47+
github.com/fsnotify/fsnotify v1.9.0 // indirect
4648
github.com/fvbommel/sortorder v1.1.0 // indirect
47-
github.com/go-logr/logr v1.4.2 // indirect
49+
github.com/go-logr/logr v1.4.3 // indirect
4850
github.com/go-logr/stdr v1.2.2 // indirect
49-
github.com/go-ole/go-ole v1.2.6 // indirect
51+
github.com/go-ole/go-ole v1.3.0 // indirect
5052
github.com/gogo/protobuf v1.3.2 // indirect
5153
github.com/google/uuid v1.6.0 // indirect
5254
github.com/gorilla/mux v1.8.1 // indirect
5355
github.com/gpustack/gguf-parser-go v0.14.1 // indirect
54-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect
56+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect
5557
github.com/henvic/httpretty v0.1.4 // indirect
5658
github.com/inconshreveable/mousetrap v1.1.0 // indirect
57-
github.com/jaypipes/ghw v0.16.0 // indirect
59+
github.com/jaypipes/ghw v0.17.0 // indirect
5860
github.com/jaypipes/pcidb v1.0.1 // indirect
5961
github.com/json-iterator/go v1.1.12 // indirect
6062
github.com/klauspost/compress v1.18.0 // indirect
@@ -69,42 +71,44 @@ require (
6971
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
7072
github.com/modern-go/reflect2 v1.0.2 // indirect
7173
github.com/morikuni/aec v1.0.0 // indirect
74+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
7275
github.com/opencontainers/go-digest v1.0.0 // indirect
7376
github.com/opencontainers/image-spec v1.1.1 // indirect
7477
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
75-
github.com/prometheus/common v0.60.0 // indirect
78+
github.com/prometheus/client_model v0.6.2 // indirect
79+
github.com/prometheus/common v0.65.0 // indirect
7680
github.com/rivo/uniseg v0.4.7 // indirect
7781
github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529 // indirect
7882
github.com/russross/blackfriday/v2 v2.1.0 // indirect
7983
github.com/sirupsen/logrus v1.9.3 // indirect
8084
github.com/smallnest/ringbuffer v0.0.0-20241116012123-461381446e3d // indirect
8185
github.com/theupdateframework/notary v0.7.1-0.20210315103452-bf96a202a09a // indirect
82-
github.com/vbatts/tar-split v0.11.6 // indirect
86+
github.com/vbatts/tar-split v0.12.1 // indirect
8387
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
84-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect
88+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
8589
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.34.0 // indirect
86-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect
87-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect
88-
go.opentelemetry.io/otel/metric v1.35.0 // indirect
89-
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
90-
go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect
91-
go.opentelemetry.io/otel/trace v1.35.0 // indirect
90+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
91+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 // indirect
92+
go.opentelemetry.io/otel/metric v1.37.0 // indirect
93+
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
94+
go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect
95+
go.opentelemetry.io/otel/trace v1.37.0 // indirect
9296
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
93-
golang.org/x/crypto v0.35.0 // indirect
94-
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect
95-
golang.org/x/mod v0.22.0 // indirect
96-
golang.org/x/net v0.36.0 // indirect
97-
golang.org/x/sys v0.31.0 // indirect
98-
golang.org/x/text v0.22.0 // indirect
97+
golang.org/x/crypto v0.39.0 // indirect
98+
golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect
99+
golang.org/x/mod v0.25.0 // indirect
100+
golang.org/x/net v0.41.0 // indirect
101+
golang.org/x/sys v0.33.0 // indirect
102+
golang.org/x/text v0.26.0 // indirect
99103
golang.org/x/time v0.9.0 // indirect
100-
golang.org/x/tools v0.29.0 // indirect
104+
golang.org/x/tools v0.34.0 // indirect
101105
gonum.org/v1/gonum v0.15.1 // indirect
102106
google.golang.org/genproto/googleapis/api v0.0.0-20250219182151-9fdb1cabc7b2 // indirect
103-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250219182151-9fdb1cabc7b2 // indirect
104-
google.golang.org/grpc v1.70.0 // indirect
105-
google.golang.org/protobuf v1.36.5 // indirect
107+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250414145226-207652e42e2e // indirect
108+
google.golang.org/grpc v1.72.2 // indirect
109+
google.golang.org/protobuf v1.36.6 // indirect
106110
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
107111
gopkg.in/yaml.v3 v3.0.1 // indirect
108112
gotest.tools/v3 v3.5.2 // indirect
109-
howett.net/plist v1.0.0 // indirect
113+
howett.net/plist v1.0.1 // indirect
110114
)

0 commit comments

Comments
 (0)