Skip to content

Commit 665bba9

Browse files
committed
fix(build): upgrade Docker SDK v24 to v27 for API 1.44+ compatibility
Docker daemon v27+ requires minimum API version 1.44, but SDK v24 defaults to 1.43 and WithAPIVersionNegotiation cannot negotiate upward. Upgrade to SDK v27 which supports 1.44+ natively. Migrate moved types: types.ContainerLogsOptions -> container.LogsOptions, types.ContainerListOptions -> container.ListOptions, types.ContainerStartOptions -> container.StartOptions. Also upgrade genproto to resolve ambiguous import with split modules.
1 parent 645019e commit 665bba9

3 files changed

Lines changed: 25 additions & 11 deletions

File tree

go.mod

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,15 @@ require (
5454

5555
// compatibility
5656
require (
57-
github.com/docker/distribution v2.8.2+incompatible // indirect
58-
github.com/docker/docker v24.0.9+incompatible
57+
github.com/docker/docker v27.5.1+incompatible
5958
golang.org/x/crypto v0.48.0
6059
golang.org/x/exp v0.0.0-20241210194714-1829a127f884
61-
golang.org/x/net v0.50.0 // indirect
60+
golang.org/x/net v0.51.0 // indirect
6261
golang.org/x/sync v0.20.0 // indirect
6362
golang.org/x/sys v0.42.0 // indirect
6463
golang.org/x/term v0.40.0
6564
golang.org/x/text v0.34.0
66-
google.golang.org/grpc v1.78.0
65+
google.golang.org/grpc v1.79.3
6766
google.golang.org/protobuf v1.36.11
6867
)
6968

@@ -104,6 +103,7 @@ require (
104103
github.com/catppuccin/go v0.3.0 // indirect
105104
github.com/cbroglie/mustache v1.4.0 // indirect
106105
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
106+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
107107
github.com/chainreactors/fingers v0.0.0-20240702104653-a66e34aa41df // indirect
108108
github.com/chainreactors/proxyclient v1.0.4-0.20260218115902-74a84a4535b0 // indirect
109109
github.com/charmbracelet/bubbles v0.21.1-0.20250623103423-23b8fd6302d7 // indirect
@@ -126,19 +126,24 @@ require (
126126
github.com/clipperhouse/displaywidth v0.9.0 // indirect
127127
github.com/clipperhouse/stringish v0.1.1 // indirect
128128
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
129+
github.com/containerd/log v0.1.0 // indirect
129130
github.com/creack/pty v1.1.24 // indirect
131+
github.com/distribution/reference v0.6.0 // indirect
130132
github.com/dlclark/regexp2 v1.11.5 // indirect
131133
github.com/docker/go-connections v0.5.0 // indirect
132134
github.com/docker/go-units v0.5.0 // indirect
133135
github.com/edsrzf/mmap-go v1.1.0 // indirect
134136
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
135137
github.com/facebookincubator/nvdtools v0.1.5 // indirect
136138
github.com/fatih/color v1.16.0 // indirect
139+
github.com/felixge/httpsnoop v1.0.4 // indirect
137140
github.com/go-acme/alidns-20150109/v4 v4.7.0 // indirect
138141
github.com/go-dedup/megophone v0.0.0-20170830025436-f01be21026f5 // indirect
139142
github.com/go-dedup/simhash v0.0.0-20170904020510-9ecaca7b509c // indirect
140143
github.com/go-dedup/text v0.0.0-20170907015346-8bb1b95e3cb7 // indirect
141144
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
145+
github.com/go-logr/logr v1.4.3 // indirect
146+
github.com/go-logr/stdr v1.2.2 // indirect
142147
github.com/go-sql-driver/mysql v1.8.1 // indirect
143148
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect
144149
github.com/goccy/go-yaml v1.12.0 // indirect
@@ -170,6 +175,7 @@ require (
170175
github.com/miekg/dns v1.1.72 // indirect
171176
github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
172177
github.com/mitchellh/mapstructure v1.5.0 // indirect
178+
github.com/moby/docker-image-spec v1.3.1 // indirect
173179
github.com/moby/term v0.5.0 // indirect
174180
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
175181
github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -204,10 +210,19 @@ require (
204210
github.com/yuin/gluamapper v0.0.0-20150323120927-d836955830e7 // indirect
205211
github.com/yuin/goldmark v1.7.4 // indirect
206212
github.com/yuin/goldmark-emoji v1.0.3 // indirect
213+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
214+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
215+
go.opentelemetry.io/otel v1.42.0 // indirect
216+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.42.0 // indirect
217+
go.opentelemetry.io/otel/metric v1.42.0 // indirect
218+
go.opentelemetry.io/otel/sdk v1.42.0 // indirect
219+
go.opentelemetry.io/otel/sdk/metric v1.42.0 // indirect
220+
go.opentelemetry.io/otel/trace v1.42.0 // indirect
207221
golang.org/x/mod v0.32.0 // indirect
208222
golang.org/x/tools v0.41.0 // indirect
209223
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
210-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect
224+
google.golang.org/genproto/googleapis/api v0.0.0-20260319201613-d00831a3d3e7 // indirect
225+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260319201613-d00831a3d3e7 // indirect
211226
gopkg.in/ini.v1 v1.67.1 // indirect
212227
gotest.tools/v3 v3.5.1 // indirect
213228
mvdan.cc/sh/v3 v3.7.0 // indirect

server/build/docker-api.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ import (
1717
"github.com/chainreactors/malice-network/server/internal/configs"
1818
"github.com/chainreactors/malice-network/server/internal/core"
1919
"github.com/chainreactors/malice-network/server/internal/db"
20-
"github.com/docker/docker/api/types"
20+
"github.com/docker/docker/api/types/container"
2121
"github.com/docker/docker/client"
2222
"github.com/docker/docker/pkg/stdcopy"
2323
)
2424

2525
var (
2626
//NameSpace = "ghcr.io/chainreactors"
27-
//Tag = "nightly-2023-09-18-latest"
27+
//Tag = "nightly-2024-02-03-latest"
2828
Ver = "latest"
2929
ContainerSourceCodePath = "/root/src"
3030
ContainerCargoRegistryCache = "/root/cargo/registry"
@@ -86,7 +86,7 @@ func SaveArtifact(dst string, bin []byte) error {
8686
}
8787

8888
func catchLogs(cli *client.Client, containerID, name string) error {
89-
logOptions := types.ContainerLogsOptions{
89+
logOptions := container.LogsOptions{
9090
ShowStdout: true,
9191
ShowStderr: true,
9292
Follow: true,
@@ -204,7 +204,7 @@ func sendContainerCtrlMsg(isEnd bool, containerName string, req *clientpb.BuildC
204204

205205
func GetDockerStatus(cli *client.Client, containerName string) (string, error) {
206206
ctx := context.Background()
207-
containers, err := cli.ContainerList(ctx, types.ContainerListOptions{All: true})
207+
containers, err := cli.ContainerList(ctx, container.ListOptions{All: true})
208208
if err != nil {
209209
return "", fmt.Errorf("failed to list containers: %w", err)
210210
}

server/build/docker-builder.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/chainreactors/malice-network/server/internal/core"
2222
"github.com/chainreactors/malice-network/server/internal/db"
2323
"github.com/chainreactors/malice-network/server/internal/db/models"
24-
"github.com/docker/docker/api/types"
2524
"github.com/docker/docker/api/types/container"
2625
)
2726

@@ -240,7 +239,7 @@ func (d *DockerBuilder) Execute() error {
240239
d.containerID = resp.ID
241240

242241
// 2. 启动容器
243-
if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {
242+
if err := cli.ContainerStart(ctx, resp.ID, container.StartOptions{}); err != nil {
244243
db.UpdateBuilderStatus(d.artifact.ID, consts.BuildStatusFailure)
245244
return fmt.Errorf("failed to start container: %w", err)
246245
}

0 commit comments

Comments
 (0)