github.com/goravel/framework@v1.13.9/support/docker/redis.go (about) 1 package docker 2 3 import ( 4 "context" 5 6 "github.com/go-redis/redis/v8" 7 "github.com/ory/dockertest/v3" 8 ) 9 10 func Redis() (*dockertest.Pool, *dockertest.Resource, error) { 11 pool, err := Pool() 12 if err != nil { 13 return nil, nil, err 14 } 15 resource, err := Resource(pool, &dockertest.RunOptions{ 16 Repository: "redis", 17 Tag: "latest", 18 Env: []string{}, 19 }) 20 if err != nil { 21 return nil, nil, err 22 } 23 _ = resource.Expire(600) 24 25 if err := pool.Retry(func() error { 26 client := redis.NewClient(&redis.Options{ 27 Addr: "localhost:" + resource.GetPort("6379/tcp"), 28 Password: "", 29 DB: 0, 30 }) 31 32 if _, err := client.Ping(context.Background()).Result(); err != nil { 33 return err 34 } 35 36 return nil 37 }); err != nil { 38 return nil, nil, err 39 } 40 41 return pool, resource, nil 42 }