Skip to content

Commit ba4380b

Browse files
authored
[CONTINT-5217][CONTINT-5218][CONTINT-5219][CONTINT-5220] Upgrade Docker SDK from docker/docker v28 to moby/moby v29 (#48777)
### What does this PR do? Migrates the Docker SDK dependency from `github.com/docker/docker` v28.5.2+incompatible to `github.com/moby/moby` v29 sub-modules (`moby/moby/api` v1.54.1, `moby/moby/client` v0.4.0) to fix two security vulnerabilities: - **CVE-2026-34040** (High, CVSS 7.8) - **CVE-2026-33997** (Medium, CVSS 8.1) Docker Engine v29 restructured its Go modules into separate sub-modules with a new Options/Result API pattern. This PR updates all 55 affected files across the codebase: - All `github.com/docker/docker/*` imports replaced with `github.com/moby/moby/*` equivalents - `DockerUtil` wrapper adapted to v29 Options/Result method signatures - Filters migrated from `api/types/filters.Args` to `client.Filters` - Removed types handled: `ContainerJSONBase` (flattened), `image.Summary.VirtualSize`, `image.InspectResponse.DockerVersion`/`ContainerConfig` - Type changes adapted: `IPAddress` (`string` → `netip.Addr`), `Port` (`nat.Port` → `network.Port`), `ContainerState` (`string` → typed) - `libnetwork/resolvconf` replaced with inline implementation (removed from moby/moby in v29) - `ContainerExec*` → `Exec*` method renames applied in e2e framework - DataDog/trivy fork updated to [PR #32](DataDog/trivy#32) which reduces docker/docker usage - `replace` directive added to pin the remaining **indirect** `docker/docker` dependency (from otel-collector-contrib) to the `28.x` branch head which includes backported security fixes ### Motivation Fix CVE-2026-34040 and CVE-2026-33997 affecting both the agent and cluster-agent binaries. Jira: [CONTINT-5217](https://datadoghq.atlassian.net/browse/CONTINT-5217), [CONTINT-5218](https://datadoghq.atlassian.net/browse/CONTINT-5218), [CONTINT-5219](https://datadoghq.atlassian.net/browse/CONTINT-5219), [CONTINT-5220](https://datadoghq.atlassian.net/browse/CONTINT-5220), [VULN-59766](https://datadoghq.atlassian.net/browse/VULN-59766), [VULN-59767](https://datadoghq.atlassian.net/browse/VULN-59767), [VULN-59774](https://datadoghq.atlassian.net/browse/VULN-59774), [VULN-59775](https://datadoghq.atlassian.net/browse/VULN-59775) ### Describe how you validated your changes - `dda inv agent.build --build-exclude=systemd` — PASS - `dda inv cluster-agent.build` — PASS - `dda inv test --targets=./pkg/util/docker/...` — ALL PASSED - `dda inv test --targets=./pkg/collector/corechecks/containers/docker/...` — 15/15 PASSED - `dda inv test --targets=./pkg/util/containers/metrics/docker/...` — ALL PASSED - `dda inv test --targets=./comp/core/workloadmeta/collectors/internal/docker/...` — 13/13 PASSED ### Additional Notes **Indirect `docker/docker` dependency:** `github.com/docker/docker` remains as an indirect dependency pulled in transitively by `opentelemetry-collector-contrib/dockerobserver` and other third-party modules. A `replace` directive pins it to the `28.x` branch head (`31a1689cb0a1`) which includes the same security fixes backported from v29.3.1 (not yet released as a tagged v28.x version). No datadog-agent code directly imports from `docker/docker` anymore. **`docker.image.virtual_size` metric:** This metric now reports `image.Size` instead of the removed `image.VirtualSize` field. These values have been identical since Docker API v1.44 (`VirtualSize` was already deprecated). [CONTINT-5217]: https://datadoghq.atlassian.net/browse/CONTINT-5217?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: lenaic.huard <lenaic.huard@datadoghq.com>
1 parent fd8f08b commit ba4380b

60 files changed

Lines changed: 409 additions & 390 deletions

Some content is hidden

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

.copyright-overrides.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ github.com/gogo/protobuf: ["Copyright (c) 2013, The GoGo Authors. All rights res
266266
# * Year is based on the year of the first commit to the repository
267267
# * Author, when known only by GitHub username, is "GitHub Full Name (github-username)"
268268
github.com/moby/docker-image-spec/specs-go/v1: Copyright 2012-2017 Docker, Inc.
269+
github.com/moby/moby/*: Copyright 2012-2017 Docker, Inc.
269270
github.com/moby/sys/mountinfo: Copyright (c) 2014-2018 The Docker & Go Authors. All rights reserved.
270271
github.com/moby/sys/signal: Copyright (c) 2014-2018 The Docker & Go Authors. All rights reserved.
271272
github.com/moby/sys/user: Copyright (c) 2014-2018 The Docker & Go Authors. All rights reserved.

LICENSE-3rdparty.csv

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,8 +1009,6 @@ core,github.com/docker/docker/api/types/time,Apache-2.0,"Copyright 2012-2017 Doc
10091009
core,github.com/docker/docker/api/types/versions,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
10101010
core,github.com/docker/docker/api/types/volume,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
10111011
core,github.com/docker/docker/client,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1012-
core,github.com/docker/docker/pkg/stdcopy,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1013-
core,github.com/docker/docker/pkg/system,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
10141012
core,github.com/docker/go-connections/nat,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
10151013
core,github.com/docker/go-connections/sockets,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
10161014
core,github.com/docker/go-connections/tlsconfig,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
@@ -1643,6 +1641,28 @@ core,github.com/mitchellh/reflectwalk,MIT,Copyright (c) 2013 Mitchell Hashimoto
16431641
core,github.com/mkrautz/goar,BSD-3-Clause,Copyright (c) 2011 Mikkel Krautz
16441642
core,github.com/moby/docker-image-spec/specs-go/v1,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
16451643
core,github.com/moby/locker,Apache-2.0,"Copyright 2013-2018 Docker, Inc"
1644+
core,github.com/moby/moby/api/types,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1645+
core,github.com/moby/moby/api/types/blkiodev,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1646+
core,github.com/moby/moby/api/types/build,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1647+
core,github.com/moby/moby/api/types/checkpoint,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1648+
core,github.com/moby/moby/api/types/common,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1649+
core,github.com/moby/moby/api/types/container,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1650+
core,github.com/moby/moby/api/types/events,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1651+
core,github.com/moby/moby/api/types/image,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1652+
core,github.com/moby/moby/api/types/jsonstream,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1653+
core,github.com/moby/moby/api/types/mount,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1654+
core,github.com/moby/moby/api/types/network,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1655+
core,github.com/moby/moby/api/types/plugin,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1656+
core,github.com/moby/moby/api/types/registry,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1657+
core,github.com/moby/moby/api/types/storage,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1658+
core,github.com/moby/moby/api/types/swarm,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1659+
core,github.com/moby/moby/api/types/system,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1660+
core,github.com/moby/moby/api/types/volume,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1661+
core,github.com/moby/moby/client,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1662+
core,github.com/moby/moby/client/internal,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1663+
core,github.com/moby/moby/client/internal/mod,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1664+
core,github.com/moby/moby/client/internal/timestamp,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
1665+
core,github.com/moby/moby/client/pkg/versions,Apache-2.0,"Copyright 2012-2017 Docker, Inc."
16461666
core,github.com/moby/spdystream,Apache-2.0,"Copyright 2013-2021 Docker, inc. Released under the [Apache 2.0 license](LICENSE) | Copyright 2014-2021 Docker Inc"
16471667
core,github.com/moby/spdystream/spdy,Apache-2.0,"Copyright 2013-2021 Docker, inc. Released under the [Apache 2.0 license](LICENSE) | Copyright 2014-2021 Docker Inc"
16481668
core,github.com/moby/sys/mountinfo,Apache-2.0,Copyright (c) 2014-2018 The Docker & Go Authors. All rights reserved.

comp/core/workloadfilter/util/docker/create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
package docker
1010

1111
import (
12-
"github.com/docker/docker/api/types/container"
12+
"github.com/moby/moby/api/types/container"
1313

1414
workloadfilter "github.com/DataDog/datadog-agent/comp/core/workloadfilter/def"
1515
"github.com/DataDog/datadog-agent/pkg/proto/pbgo/core"

comp/core/workloadmeta/collectors/internal/docker/docker.go

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ import (
1818
"sync"
1919
"time"
2020

21-
"github.com/docker/docker/api/types/container"
22-
"github.com/docker/docker/api/types/events"
23-
"github.com/docker/docker/api/types/image"
24-
"github.com/docker/docker/api/types/network"
25-
"github.com/docker/go-connections/nat"
21+
"github.com/moby/moby/api/types/container"
22+
"github.com/moby/moby/api/types/events"
23+
"github.com/moby/moby/api/types/image"
24+
"github.com/moby/moby/api/types/network"
25+
dockerclient "github.com/moby/moby/client"
2626
v1 "github.com/opencontainers/image-spec/specs-go/v1"
2727
"go.uber.org/fx"
2828

@@ -199,7 +199,7 @@ func (c *collector) generateEventsFromContainerList(ctx context.Context, filter
199199
return errors.New("Start was not called")
200200
}
201201

202-
containers, err := c.dockerUtil.RawContainerListWithFilter(ctx, container.ListOptions{}, filter, c.store)
202+
containers, err := c.dockerUtil.RawContainerListWithFilter(ctx, dockerclient.ContainerListOptions{}, filter, c.store)
203203
if err != nil {
204204
return err
205205
}
@@ -459,35 +459,32 @@ func extractPorts(container container.InspectResponse) []workloadmeta.ContainerP
459459
return ports
460460
}
461461

462-
func extractPort(port nat.Port) []workloadmeta.ContainerPort {
462+
func extractPort(port network.Port) []workloadmeta.ContainerPort {
463463
var output []workloadmeta.ContainerPort
464464

465-
// Try to parse a port range, eg. 22-25
466-
first, last, err := port.Range()
467-
if err != nil {
468-
log.Debugf("cannot get port range from nat.Port: %s", err)
469-
return output
470-
}
465+
pr := port.Range()
466+
first := int(pr.Start())
467+
last := int(pr.End())
471468

472469
if last > first {
473470
output = make([]workloadmeta.ContainerPort, 0, last-first+1)
474471
for p := first; p <= last; p++ {
475472
output = append(output, workloadmeta.ContainerPort{
476473
Port: p,
477-
Protocol: port.Proto(),
474+
Protocol: string(port.Proto()),
478475
})
479476
}
480477

481478
return output
482479
}
483480

484-
// Try to parse a single port (most common case)
485-
p := port.Int()
481+
// Single port (most common case)
482+
p := int(port.Num())
486483
if p > 0 {
487484
output = []workloadmeta.ContainerPort{
488485
{
489486
Port: p,
490-
Protocol: port.Proto(),
487+
Protocol: string(port.Proto()),
491488
},
492489
}
493490
}
@@ -499,8 +496,8 @@ func extractNetworkIPs(networks map[string]*network.EndpointSettings) map[string
499496
networkIPs := make(map[string]string)
500497

501498
for net, settings := range networks {
502-
if len(settings.IPAddress) > 0 {
503-
networkIPs[net] = settings.IPAddress
499+
if settings.IPAddress.IsValid() {
500+
networkIPs[net] = settings.IPAddress.String()
504501
}
505502
}
506503

comp/core/workloadmeta/collectors/internal/docker/docker_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"testing"
1212
"time"
1313

14-
"github.com/docker/docker/api/types/image"
14+
"github.com/moby/moby/api/types/image"
1515
v1 "github.com/opencontainers/image-spec/specs-go/v1"
1616
"github.com/stretchr/testify/assert"
1717

deps/go.MODULE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,6 @@ use_repo(
251251
"com_github_datadog_zstd",
252252
"com_github_davecgh_go_spew",
253253
"com_github_distribution_reference",
254-
"com_github_docker_docker",
255-
"com_github_docker_go_connections",
256254
"com_github_dustin_go_humanize",
257255
"com_github_elastic_go_freelru",
258256
"com_github_elastic_go_libaudit_v2",
@@ -346,6 +344,8 @@ use_repo(
346344
"com_github_miekg_dns",
347345
"com_github_mitchellh_mapstructure",
348346
"com_github_moby_docker_image_spec",
347+
"com_github_moby_moby_api",
348+
"com_github_moby_moby_client",
349349
"com_github_moby_sys_mountinfo",
350350
"com_github_modelcontextprotocol_go_sdk",
351351
"com_github_mohae_deepcopy",

go.mod

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ require (
218218
github.com/cyphar/filepath-securejoin v0.6.0
219219
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
220220
github.com/distribution/reference v0.6.0
221-
github.com/docker/docker v28.5.2+incompatible
222-
github.com/docker/go-connections v0.6.0
221+
github.com/docker/docker v28.5.2+incompatible // indirect
222+
github.com/docker/go-connections v0.6.0 // indirect
223223
github.com/dustin/go-humanize v1.0.1
224224
github.com/elastic/go-libaudit/v2 v2.6.2
225225
github.com/elastic/go-seccomp-bpf v1.6.0
@@ -688,7 +688,6 @@ require (
688688
github.com/moby/docker-image-spec v1.3.1
689689
github.com/moby/locker v1.0.1 // indirect
690690
github.com/moby/spdystream v0.5.0 // indirect
691-
github.com/moby/sys/atomicwriter v0.1.0 // indirect
692691
github.com/moby/sys/sequential v0.6.0 // indirect
693692
github.com/moby/sys/signal v0.7.1 // indirect
694693
github.com/moby/sys/user v0.4.0 // indirect
@@ -997,6 +996,8 @@ require (
997996
github.com/hashicorp/vault/api/auth/userpass v0.11.0
998997
github.com/jarcoal/httpmock v1.4.1
999998
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c
999+
github.com/moby/moby/api v1.54.1
1000+
github.com/moby/moby/client v0.4.0
10001001
github.com/modelcontextprotocol/go-sdk v1.4.1
10011002
github.com/qri-io/jsonpointer v0.1.1
10021003
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
@@ -1165,8 +1166,6 @@ require (
11651166
github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 // indirect
11661167
github.com/minio/simdjson-go v0.4.5 // indirect
11671168
github.com/mitchellh/pointerstructure v1.2.1 // indirect
1168-
github.com/moby/moby/api v1.52.0 // indirect
1169-
github.com/moby/moby/client v0.2.1 // indirect
11701169
github.com/montanaflynn/stats v0.7.1 // indirect
11711170
github.com/nexus-rpc/sdk-go v0.5.1 // indirect
11721171
github.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2 // indirect
@@ -1234,8 +1233,12 @@ replace github.com/hashicorp/vault/api/auth/aws => github.com/DataDog/vault/api/
12341233

12351234
// Use custom Trivy fork to reduce binary size
12361235
// Pull in replacements needed by upstream Trivy
1237-
// Maps to Trivy fork https://github.com/DataDog/trivy/commits/djc/main-dd-060-no-buildinfo
1238-
replace github.com/aquasecurity/trivy => github.com/DataDog/trivy v0.0.0-20251216175138-81422df93657
1236+
// Maps to Trivy fork https://github.com/DataDog/trivy/pull/32
1237+
replace github.com/aquasecurity/trivy => github.com/DataDog/trivy v0.0.0-20260407220859-6cf8ddc1826c
1238+
1239+
// github.com/docker/docker v28 has known security vulnerabilities (CVE-2026-34040, CVE-2026-33997).
1240+
// Pin to the 28.x branch head which includes the backported security fixes (not yet tagged).
1241+
replace github.com/docker/docker => github.com/docker/docker v28.5.3-0.20260325154711-31a1689cb0a1+incompatible
12391242

12401243
// Prevent dependencies to be bumped by Trivy
12411244
// github.com/DataDog/aptly@v1.5.3 depends on gopenpgp/v2, so we use latest version of go-crypto before the move to gopenpgp/v3

go.sum

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/collector/corechecks/containers/docker/check.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import (
1616
"strings"
1717
"time"
1818

19-
"github.com/docker/docker/api/types/container"
19+
"github.com/moby/moby/api/types/container"
20+
dockerclient "github.com/moby/moby/client"
2021

2122
"github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration"
2223
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
@@ -171,7 +172,7 @@ func (d *DockerCheck) Run() error {
171172
d.collectContainerSizeCounter = (d.collectContainerSizeCounter + 1) % d.instance.CollectContainerSizeFreq
172173
}
173174

174-
rawContainerList, err := du.RawContainerList(context.TODO(), container.ListOptions{All: true, Size: collectContainerSize})
175+
rawContainerList, err := du.RawContainerList(context.TODO(), dockerclient.ContainerListOptions{All: true, Size: collectContainerSize})
175176
if err != nil {
176177
sender.ServiceCheck(DockerServiceUp, servicecheck.ServiceCheckCritical, "", nil, err.Error())
177178
_ = d.Warnf("Error collecting containers: %s", err)
@@ -207,7 +208,7 @@ func (d *DockerCheck) runDockerCustom(sender sender.Sender, du docker.Client, ra
207208
}
208209

209210
for _, rawContainer := range rawContainerList {
210-
if rawContainer.State == string(workloadmeta.ContainerStatusRunning) {
211+
if string(rawContainer.State) == string(workloadmeta.ContainerStatusRunning) {
211212
containersRunning++
212213
} else {
213214
containersStopped++
@@ -238,7 +239,7 @@ func (d *DockerCheck) runDockerCustom(sender sender.Sender, du docker.Client, ra
238239
}
239240

240241
isContainerExcluded := d.containerFilter.IsExcluded(filterableContainer)
241-
isContainerRunning := rawContainer.State == string(workloadmeta.ContainerStatusRunning)
242+
isContainerRunning := string(rawContainer.State) == string(workloadmeta.ContainerStatusRunning)
242243
taggerEntityID := types.NewEntityID(types.ContainerID, rawContainer.ID)
243244
tags, err := d.getImageTagsFromContainer(taggerEntityID, resolvedImageName, isContainerExcluded || !isContainerRunning)
244245
if err != nil {
@@ -337,8 +338,7 @@ func (d *DockerCheck) collectImageMetrics(sender sender.Sender, du docker.Client
337338
continue
338339
}
339340

340-
//nolint:staticcheck // TODO(CINT) Fix staticcheck linter
341-
sender.Gauge("docker.image.virtual_size", float64(image.VirtualSize), "", imageTags)
341+
sender.Gauge("docker.image.virtual_size", float64(image.Size), "", imageTags)
342342
sender.Gauge("docker.image.size", float64(image.Size), "", imageTags)
343343
}
344344
}

pkg/collector/corechecks/containers/docker/check_linux_test.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
package docker
99

1010
import (
11+
"net/netip"
1112
"testing"
1213

13-
"github.com/docker/docker/api/types/container"
14-
dockerNetworkTypes "github.com/docker/docker/api/types/network"
14+
"github.com/moby/moby/api/types/container"
15+
dockerNetworkTypes "github.com/moby/moby/api/types/network"
1516

1617
nooptagger "github.com/DataDog/datadog-agent/comp/core/tagger/impl-noop"
1718
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
@@ -138,7 +139,7 @@ func TestDockerNetworkExtension(t *testing.T) {
138139
})
139140
container1RawDocker := container.Summary{
140141
ID: "kube-host-network",
141-
State: string(workloadmeta.ContainerStatusRunning),
142+
State: container.ContainerState(workloadmeta.ContainerStatusRunning),
142143
HostConfig: struct {
143144
NetworkMode string `json:",omitempty"`
144145
Annotations map[string]string `json:",omitempty"`
@@ -169,7 +170,7 @@ func TestDockerNetworkExtension(t *testing.T) {
169170
})
170171
container2RawDocker := container.Summary{
171172
ID: "kube-app",
172-
State: string(workloadmeta.ContainerStatusRunning),
173+
State: container.ContainerState(workloadmeta.ContainerStatusRunning),
173174
HostConfig: struct {
174175
NetworkMode string `json:",omitempty"`
175176
Annotations map[string]string `json:",omitempty"`
@@ -182,7 +183,7 @@ func TestDockerNetworkExtension(t *testing.T) {
182183
// Container3 is only raw as it's excluded (pause container)
183184
container3RawDocker := container.Summary{
184185
ID: "kube-app-pause",
185-
State: string(workloadmeta.ContainerStatusRunning),
186+
State: container.ContainerState(workloadmeta.ContainerStatusRunning),
186187
HostConfig: struct {
187188
NetworkMode string `json:",omitempty"`
188189
Annotations map[string]string `json:",omitempty"`
@@ -219,18 +220,18 @@ func TestDockerNetworkExtension(t *testing.T) {
219220
})
220221
container4RawDocker := container.Summary{
221222
ID: "docker-app",
222-
State: string(workloadmeta.ContainerStatusRunning),
223+
State: container.ContainerState(workloadmeta.ContainerStatusRunning),
223224
HostConfig: struct {
224225
NetworkMode string `json:",omitempty"`
225226
Annotations map[string]string `json:",omitempty"`
226227
}{NetworkMode: "ubuntu_default"},
227228
NetworkSettings: &container.NetworkSettingsSummary{
228229
Networks: map[string]*dockerNetworkTypes.EndpointSettings{
229230
"ubuntu_default": {
230-
IPAddress: "172.18.0.2",
231+
IPAddress: netip.MustParseAddr("172.18.0.2"),
231232
},
232233
"bridge": {
233-
IPAddress: "172.17.0.2",
234+
IPAddress: netip.MustParseAddr("172.17.0.2"),
234235
},
235236
},
236237
},
@@ -293,7 +294,7 @@ func TestNetworkCustomOnFailure(t *testing.T) {
293294
Labels: map[string]string{
294295
"io.kubernetes.pod.namespace": "kubens",
295296
},
296-
State: string(workloadmeta.ContainerStatusRunning),
297+
State: container.ContainerState(workloadmeta.ContainerStatusRunning),
297298
SizeRw: 100,
298299
SizeRootFs: 200,
299300
})

0 commit comments

Comments
 (0)