@@ -3,7 +3,6 @@ package integration
33import (
44 "context"
55 "fmt"
6- "net"
76 "os"
87 "sync/atomic"
98 "testing"
@@ -22,7 +21,7 @@ var debugLKServer = os.Getenv("DEBUG_LK_SERVER") != ""
2221
2322var redisLast uint32
2423
25- func runRedis (t testing.TB ) * redis.RedisConfig {
24+ func runRedis (t testing.TB , network * dockertest. Network ) ( * redis.RedisConfig , string ) {
2625 name := fmt .Sprintf ("siptest-redis-%d" , atomic .AddUint32 (& redisLast , 1 ))
2726 c , ok := Docker .ContainerByName (name )
2827 if ok {
@@ -33,6 +32,7 @@ func runRedis(t testing.TB) *redis.RedisConfig {
3332 & dockertest.RunOptions {
3433 Name : name ,
3534 Repository : "redis" , Tag : "latest" ,
35+ Networks : []* dockertest.Network {network },
3636 })
3737 if err != nil {
3838 t .Fatal (err )
@@ -44,7 +44,8 @@ func runRedis(t testing.TB) *redis.RedisConfig {
4444 waitTCPPort (t , addr )
4545
4646 t .Log ("Redis running on" , addr )
47- return & redis.RedisConfig {Address : addr }
47+ // addr: host-published (SIP service); name:6379: in-network (LiveKit container).
48+ return & redis.RedisConfig {Address : addr }, name
4849}
4950
5051type LiveKit struct {
@@ -55,14 +56,21 @@ type LiveKit struct {
5556var livekitLast uint32
5657
5758func runLiveKit (t testing.TB ) * LiveKit {
58- redis := runRedis ( t )
59+ id := atomic . AddUint32 ( & livekitLast , 1 )
5960
60- _ , port , err := net .SplitHostPort (redis .Address )
61+ // Shared network so LiveKit reaches Redis by name, avoiding a
62+ // container->host round-trip that some CI runners block.
63+ network , err := Docker .CreateNetwork (fmt .Sprintf ("siptest-net-%d" , id ))
6164 if err != nil {
6265 t .Fatal (err )
6366 }
67+ t .Cleanup (func () {
68+ _ = network .Close ()
69+ })
70+
71+ redis , redisName := runRedis (t , network )
6472
65- name := fmt .Sprintf ("siptest-livekit-%d" , atomic . AddUint32 ( & livekitLast , 1 ) )
73+ name := fmt .Sprintf ("siptest-livekit-%d" , id )
6674 c , ok := Docker .ContainerByName (name )
6775 if ok {
6876 t .Log ("Livekit-server container already exists - stopping and removing" , name )
@@ -74,12 +82,11 @@ func runLiveKit(t testing.TB) *LiveKit {
7482 Repository : "livekit/livekit-server" , Tag : "master" ,
7583 Cmd : []string {
7684 "--dev" ,
77- // TODO: We use Docker bridge IP here instead of the host IP.
78- // Maybe run on the host network instead? We might need it for RTP anyway.
79- "--redis-host" , dockerBridgeIP + ":" + port ,
85+ "--redis-host" , redisName + ":6379" ,
8086 "--bind" , "0.0.0.0" ,
8187 },
8288 ExposedPorts : []string {"7880/tcp" },
89+ Networks : []* dockertest.Network {network },
8390 })
8491 if err != nil {
8592 t .Fatal (err )
0 commit comments