add-patch-to-build-with-docker-26
authorCyril Brulebois <cyril@debamax.com>
Sun, 6 Apr 2025 21:52:07 +0000 (23:52 +0200)
committerCyril Brulebois <cyril@debamax.com>
Sun, 6 Apr 2025 21:52:07 +0000 (23:52 +0200)
Gbp-Pq: Name 0020-add-patch-to-build-with-docker-26.patch

pkg/acquisition/modules/docker/docker.go
pkg/acquisition/modules/docker/docker_test.go
pkg/metabase/container.go

index 117eadda2298747d34311954cd04d7f0cc0bb172..b9619d955a727fa5dac901eb718106071b797762 100644 (file)
@@ -15,6 +15,7 @@ import (
        "github.com/crowdsecurity/crowdsec/pkg/types"
        "github.com/crowdsecurity/dlog"
        dockerTypes "github.com/docker/docker/api/types"
+       dockerContainer "github.com/docker/docker/api/types/container"
        "github.com/docker/docker/client"
 
        "github.com/pkg/errors"
@@ -55,7 +56,7 @@ type DockerSource struct {
        logger                *log.Entry
        Client                client.CommonAPIClient
        t                     *tomb.Tomb
-       containerLogsOptions  *dockerTypes.ContainerLogsOptions
+       containerLogsOptions  *dockerContainer.LogsOptions
 }
 
 type ContainerConfig struct {
@@ -119,7 +120,7 @@ func (d *DockerSource) Configure(Config []byte, logger *log.Entry) error {
                d.Config.Since = time.Now().UTC().Format(time.RFC3339)
        }
 
-       d.containerLogsOptions = &dockerTypes.ContainerLogsOptions{
+       d.containerLogsOptions = &dockerContainer.LogsOptions{
                ShowStdout: d.Config.FollowStdout,
                ShowStderr: d.Config.FollowStdErr,
                Follow:     true,
@@ -170,7 +171,7 @@ func (d *DockerSource) ConfigureByDSN(dsn string, labels map[string]string, logg
                return err
        }
 
-       d.containerLogsOptions = &dockerTypes.ContainerLogsOptions{
+       d.containerLogsOptions = &dockerContainer.LogsOptions{
                ShowStdout: d.Config.FollowStdout,
                ShowStderr: d.Config.FollowStdErr,
                Follow:     false,
@@ -266,7 +267,7 @@ func (d *DockerSource) SupportedModes() []string {
 //OneShotAcquisition reads a set of file and returns when done
 func (d *DockerSource) OneShotAcquisition(out chan types.Event, t *tomb.Tomb) error {
        d.logger.Debug("In oneshot")
-       runningContainer, err := d.Client.ContainerList(context.Background(), dockerTypes.ContainerListOptions{})
+       runningContainer, err := d.Client.ContainerList(context.Background(), dockerContainer.ListOptions{})
        if err != nil {
                return err
        }
@@ -399,7 +400,7 @@ func (d *DockerSource) WatchContainer(monitChan chan *ContainerConfig, deleteCha
                case <-ticker.C:
                        // to track for garbage collection
                        runningContainersID := make(map[string]bool)
-                       runningContainer, err := d.Client.ContainerList(context.Background(), dockerTypes.ContainerListOptions{})
+                       runningContainer, err := d.Client.ContainerList(context.Background(), dockerContainer.ListOptions{})
                        if err != nil {
                                if strings.Contains(strings.ToLower(err.Error()), "cannot connect to the docker daemon at") {
                                        for idx, container := range d.runningContainerState {
index cf6e3503027e6fd5ef757b7e385f2f2740772859..eeaf67acc013ada0c11ef0cf502c85602ad2893f 100644 (file)
@@ -216,7 +216,7 @@ container_name_regexp:
 
 }
 
-func (cli *mockDockerCli) ContainerList(ctx context.Context, options dockerTypes.ContainerListOptions) ([]dockerTypes.Container, error) {
+func (cli *mockDockerCli) ContainerList(ctx context.Context, options dockerContainer.ListOptions) ([]dockerTypes.Container, error) {
        if readLogs == true {
                return []dockerTypes.Container{}, nil
        }
index b53803b1a89a93d471c0a32db93ec8638e943273..2368a9b8284d4d44891ac7104de11cdc57c37927 100644 (file)
@@ -5,7 +5,6 @@ import (
        "context"
        "fmt"
        "runtime"
-       "time"
 
        "github.com/docker/docker/api/types"
        "github.com/docker/docker/api/types/container"
@@ -113,7 +112,7 @@ func (c *Container) Create() error {
 
 func (c *Container) Start() error {
        ctx := context.Background()
-       if err := c.CLI.ContainerStart(ctx, c.Name, types.ContainerStartOptions{}); err != nil {
+       if err := c.CLI.ContainerStart(ctx, c.Name, container.StartOptions{}); err != nil {
                return fmt.Errorf("failed while starting %s : %s", c.ID, err)
        }
 
@@ -126,7 +125,7 @@ func StartContainer(name string) error {
                return fmt.Errorf("failed to create docker client : %s", err)
        }
        ctx := context.Background()
-       if err := cli.ContainerStart(ctx, name, types.ContainerStartOptions{}); err != nil {
+       if err := cli.ContainerStart(ctx, name, container.StartOptions{}); err != nil {
                return fmt.Errorf("failed while starting %s : %s", name, err)
        }
 
@@ -139,8 +138,10 @@ func StopContainer(name string) error {
                return fmt.Errorf("failed to create docker client : %s", err)
        }
        ctx := context.Background()
-       var to time.Duration = 20 * time.Second
-       if err := cli.ContainerStop(ctx, name, &to); err != nil {
+       timeoutSeconds := 20
+       var to container.StopOptions
+       to.Timeout = &timeoutSeconds
+       if err := cli.ContainerStop(ctx, name, to); err != nil {
                return fmt.Errorf("failed while stopping %s : %s", name, err)
        }
        log.Printf("container stopped successfully")
@@ -154,7 +155,7 @@ func RemoveContainer(name string) error {
        }
        ctx := context.Background()
        log.Printf("Removing docker metabase %s", name)
-       if err := cli.ContainerRemove(ctx, name, types.ContainerRemoveOptions{}); err != nil {
+       if err := cli.ContainerRemove(ctx, name, container.RemoveOptions{}); err != nil {
                return fmt.Errorf("failed to remove container %s : %s", name, err)
        }
        return nil