From b16d244afa012a8a3035a3383fa727b081db5d36 Mon Sep 17 00:00:00 2001 From: Kegan Dougal <7190048+kegsay@users.noreply.github.com> Date: Wed, 25 Sep 2024 12:23:58 +0100 Subject: [PATCH 1/4] Bump docker and Go deps Min Go 1.22 Requires newer Docker API versions on dockerd. --- go.mod | 15 +++++++++++++-- go.sum | 22 ++++++++++++++++++++++ internal/docker/builder.go | 21 +++++++++++---------- internal/docker/deployer.go | 13 +++++++------ 4 files changed, 53 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 9ed49272..44e3159d 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,11 @@ module github.com/matrix-org/complement -go 1.19 +go 1.22 + +toolchain go1.22.1 require ( - github.com/docker/docker v24.0.9+incompatible + github.com/docker/docker v27.3.1+incompatible github.com/docker/go-connections v0.4.0 github.com/gorilla/mux v1.8.0 github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530 @@ -22,13 +24,18 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect + github.com/distribution/reference v0.6.0 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/go-units v0.4.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-fonts/liberation v0.2.0 // indirect github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-pdf/fpdf v0.6.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect @@ -36,6 +43,10 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect + go.opentelemetry.io/otel v1.30.0 // indirect + go.opentelemetry.io/otel/metric v1.30.0 // indirect + go.opentelemetry.io/otel/trace v1.30.0 // indirect golang.org/x/crypto v0.21.0 // indirect golang.org/x/image v0.18.0 // indirect golang.org/x/net v0.23.0 // indirect diff --git a/go.sum b/go.sum index e8eb56ee..9cf51875 100644 --- a/go.sum +++ b/go.sum @@ -16,14 +16,20 @@ github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v24.0.9+incompatible h1:HPGzNmwfLZWdxHqK9/II92pyi1EpYKsAqcl4G0Of9v0= github.com/docker/docker v24.0.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= +github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/go-fonts/dejavu v0.1.0 h1:JSajPXURYqpr+Cu8U9bt8K+XcACIHWqWrvWCKyeFmVQ= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= @@ -34,6 +40,11 @@ github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2H github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 h1:6zl3BbBhdnMkpSj2YY30qV3gDcVBGtFgVsV3+/i+mKQ= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-pdf/fpdf v0.6.0 h1:MlgtGIfsdMEEQJr2le6b/HNr1ZlQwxyWr77r2aj2U/8= github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= @@ -57,6 +68,8 @@ github.com/matrix-org/gomatrixserverlib v0.0.0-20230921171121-0466775328c7/go.mo github.com/matrix-org/util v0.0.0-20221111132719-399730281e66 h1:6z4KxomXSIGWqhHcfzExgkH3Z3UkIXry4ibJS4Aqz2Y= github.com/matrix-org/util v0.0.0-20221111132719-399730281e66/go.mod h1:iBI1foelCqA09JJgPV0FYz4qA5dUXYOxMi57FxKBdd4= github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 h1:yH0SvLzcbZxcJXho2yh7CqdENGMQe73Cw3woZBpPli0= github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= @@ -83,6 +96,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.16.0 h1:SyXa+dsSPpUlcwEDuKuEBJEz5vzTvOea+9rjyYodQFg= github.com/tidwall/gjson v1.16.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= @@ -95,6 +109,14 @@ github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= +go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= +go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= +go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= +go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= +go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= +go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= diff --git a/internal/docker/builder.go b/internal/docker/builder.go index 1b3addc4..689b6364 100644 --- a/internal/docker/builder.go +++ b/internal/docker/builder.go @@ -22,6 +22,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/client" "github.com/docker/docker/pkg/stdcopy" "github.com/docker/go-connections/nat" @@ -100,7 +101,7 @@ func (d *Builder) removeNetworks() error { // removeImages removes all images with `complementLabel`. func (d *Builder) removeImages() error { - images, err := d.Docker.ImageList(context.Background(), types.ImageListOptions{ + images, err := d.Docker.ImageList(context.Background(), image.ListOptions{ Filters: label( complementLabel, "complement_pkg="+d.Config.PackageNamespace, @@ -136,7 +137,7 @@ func (d *Builder) removeImages() error { d.log("Keeping image created from blueprint %s", bprintName) continue } - _, err = d.Docker.ImageRemove(context.Background(), img.ID, types.ImageRemoveOptions{ + _, err = d.Docker.ImageRemove(context.Background(), img.ID, image.RemoveOptions{ Force: true, }) if err != nil { @@ -149,7 +150,7 @@ func (d *Builder) removeImages() error { // removeContainers removes all containers with `complementLabel`. func (d *Builder) removeContainers() error { - containers, err := d.Docker.ContainerList(context.Background(), types.ContainerListOptions{ + containers, err := d.Docker.ContainerList(context.Background(), container.ListOptions{ All: true, Filters: label( complementLabel, @@ -160,7 +161,7 @@ func (d *Builder) removeContainers() error { return err } for _, c := range containers { - err = d.Docker.ContainerRemove(context.Background(), c.ID, types.ContainerRemoveOptions{ + err = d.Docker.ContainerRemove(context.Background(), c.ID, container.RemoveOptions{ Force: true, }) if err != nil { @@ -171,7 +172,7 @@ func (d *Builder) removeContainers() error { } func (d *Builder) ConstructBlueprintIfNotExist(bprint b.Blueprint) error { - images, err := d.Docker.ImageList(context.Background(), types.ImageListOptions{ + images, err := d.Docker.ImageList(context.Background(), image.ListOptions{ Filters: label( "complement_blueprint="+bprint.Name, "complement_pkg="+d.Config.PackageNamespace, @@ -200,12 +201,12 @@ func (d *Builder) ConstructBlueprint(bprint b.Blueprint) error { // wait a bit for images/containers to show up in 'image ls' foundImages := false - var images []types.ImageSummary + var images []image.Summary var err error waitTime := 5 * time.Second startTime := time.Now() for time.Since(startTime) < waitTime { - images, err = d.Docker.ImageList(context.Background(), types.ImageListOptions{ + images, err = d.Docker.ImageList(context.Background(), image.ListOptions{ Filters: label( complementLabel, "complement_blueprint="+bprint.Name, @@ -255,7 +256,7 @@ func (d *Builder) construct(bprint b.Blueprint) (errs []error) { // something went wrong, but we have a container which may have interesting logs printLogs(d.Docker, res.containerID, res.contextStr) } - if delErr := d.Docker.ContainerRemove(context.Background(), res.containerID, types.ContainerRemoveOptions{ + if delErr := d.Docker.ContainerRemove(context.Background(), res.containerID, container.RemoveOptions{ Force: true, }); delErr != nil { d.log("%s: failed to remove container which failed to deploy: %s", res.contextStr, delErr) @@ -334,7 +335,7 @@ func (d *Builder) construct(bprint b.Blueprint) (errs []error) { d.log("%s: Stopped container: %s", res.contextStr, res.containerID) // commit the container - commit, err := d.Docker.ContainerCommit(context.Background(), res.containerID, types.ContainerCommitOptions{ + commit, err := d.Docker.ContainerCommit(context.Background(), res.containerID, container.CommitOptions{ Author: "Complement", Pause: true, Reference: "localhost/complement:" + res.contextStr, @@ -475,7 +476,7 @@ func createNetworkIfNotExists(docker *client.Client, pkgNamespace, blueprintName } func printLogs(docker *client.Client, containerID, contextStr string) { - reader, err := docker.ContainerLogs(context.Background(), containerID, types.ContainerLogsOptions{ + reader, err := docker.ContainerLogs(context.Background(), containerID, container.LogsOptions{ ShowStderr: true, ShowStdout: true, Follow: false, diff --git a/internal/docker/deployer.go b/internal/docker/deployer.go index 18f03129..c14e4d9a 100644 --- a/internal/docker/deployer.go +++ b/internal/docker/deployer.go @@ -36,6 +36,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/image" "github.com/docker/docker/api/types/mount" "github.com/docker/docker/api/types/network" @@ -131,7 +132,7 @@ func (d *Deployer) Deploy(ctx context.Context, blueprintName string) (*Deploymen HS: make(map[string]*HomeserverDeployment), Config: d.config, } - images, err := d.Docker.ImageList(ctx, types.ImageListOptions{ + images, err := d.Docker.ImageList(ctx, image.ListOptions{ Filters: label( "complement_pkg="+d.config.PackageNamespace, "complement_blueprint="+blueprintName, @@ -152,7 +153,7 @@ func (d *Deployer) Deploy(ctx context.Context, blueprintName string) (*Deploymen var mu sync.Mutex // protects mutable values like the counter and errors var wg sync.WaitGroup wg.Add(len(images)) // ensure we wait until all images have deployed - deployImg := func(img types.ImageSummary) error { + deployImg := func(img image.Summary) error { defer wg.Done() mu.Lock() d.Counter++ @@ -183,7 +184,7 @@ func (d *Deployer) Deploy(ctx context.Context, blueprintName string) (*Deploymen var lastErr error for _, img := range images { - go func(i types.ImageSummary) { + go func(i image.Summary) { err := deployImg(i) if err != nil { mu.Lock() @@ -232,7 +233,7 @@ func (d *Deployer) Destroy(dep *Deployment, printServerLogs bool, testName strin log.Printf("Post test script result: %s", string(result)) } - err = d.Docker.ContainerRemove(context.Background(), hsDep.ContainerID, types.ContainerRemoveOptions{ + err = d.Docker.ContainerRemove(context.Background(), hsDep.ContainerID, container.RemoveOptions{ Force: true, }) if err != nil { @@ -293,7 +294,7 @@ func (d *Deployer) Restart(hsDep *HomeserverDeployment) error { func (d *Deployer) StartServer(hsDep *HomeserverDeployment) error { ctx := context.Background() - err := d.Docker.ContainerStart(ctx, hsDep.ContainerID, types.ContainerStartOptions{}) + err := d.Docker.ContainerStart(ctx, hsDep.ContainerID, container.StartOptions{}) if err != nil { return fmt.Errorf("failed to start container %s: %s", hsDep.ContainerID, err) } @@ -431,7 +432,7 @@ func deployImage( return stubDeployment, fmt.Errorf("failed to copy CA key to container: %s", err) } - err = docker.ContainerStart(ctx, containerID, types.ContainerStartOptions{}) + err = docker.ContainerStart(ctx, containerID, container.StartOptions{}) if err != nil { return stubDeployment, err } From ef0f546834f6afccdc1731a6f51829eb2fa600e6 Mon Sep 17 00:00:00 2001 From: Kegan Dougal <7190048+kegsay@users.noreply.github.com> Date: Wed, 25 Sep 2024 13:01:57 +0100 Subject: [PATCH 2/4] Let's not be _too_ new else it won't work with ubuntu:latest --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 44e3159d..3b58f167 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 toolchain go1.22.1 require ( - github.com/docker/docker v27.3.1+incompatible + github.com/docker/docker v27.0.3+incompatible github.com/docker/go-connections v0.4.0 github.com/gorilla/mux v1.8.0 github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530 diff --git a/go.sum b/go.sum index 9cf51875..d4d83d72 100644 --- a/go.sum +++ b/go.sum @@ -22,6 +22,8 @@ github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m3 github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v24.0.9+incompatible h1:HPGzNmwfLZWdxHqK9/II92pyi1EpYKsAqcl4G0Of9v0= github.com/docker/docker v24.0.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= +github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= From e71800d040736e3326f72cd05eb88d4b3030420c Mon Sep 17 00:00:00 2001 From: Kegan Dougal <7190048+kegsay@users.noreply.github.com> Date: Wed, 25 Sep 2024 13:09:30 +0100 Subject: [PATCH 3/4] Still too new. --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 3b58f167..d4f11cf7 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 toolchain go1.22.1 require ( - github.com/docker/docker v27.0.3+incompatible + github.com/docker/docker v26.1.4+incompatible github.com/docker/go-connections v0.4.0 github.com/gorilla/mux v1.8.0 github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530 diff --git a/go.sum b/go.sum index d4d83d72..b719ff6a 100644 --- a/go.sum +++ b/go.sum @@ -22,6 +22,8 @@ github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m3 github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v24.0.9+incompatible h1:HPGzNmwfLZWdxHqK9/II92pyi1EpYKsAqcl4G0Of9v0= github.com/docker/docker v24.0.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.4+incompatible h1:vuTpXDuoga+Z38m1OZHzl7NKisKWaWlhjQk7IDPSLsU= +github.com/docker/docker v26.1.4+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= From c73a8c9bf500c08baa9887fe210ad011f691f3d1 Mon Sep 17 00:00:00 2001 From: Kegan Dougal <7190048+kegsay@users.noreply.github.com> Date: Wed, 25 Sep 2024 13:26:31 +0100 Subject: [PATCH 4/4] Clarify API version in docs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bec9856a..88acbb9b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ See also [Complement Crypto](https://github.com/matrix-org/complement-crypto) fo ## Running -You need to have Go and Docker >= 20.10 installed. Then: +You need to have Go and Docker installed. Complement uses Docker API version 1.45, so your `docker version` must support that. Then: ``` $ COMPLEMENT_BASE_IMAGE=some-matrix/homeserver-impl go test -v ./tests/...