Skip to content

Commit 201753d

Browse files
committed
DEBUG: Print container logs
1 parent 2c31800 commit 201753d

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

lib/docker/docker.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/rs/zerolog"
1212
tc "github.com/testcontainers/testcontainers-go"
1313

14+
"github.com/smartcontractkit/chainlink-testing-framework/lib/logging"
1415
"github.com/smartcontractkit/chainlink-testing-framework/lib/mirror"
1516
"github.com/smartcontractkit/chainlink-testing-framework/lib/utils/testcontext"
1617
)
@@ -157,8 +158,10 @@ var LinuxPlatformImageRetrier = func(l zerolog.Logger, startErr error, req tc.Ge
157158
// It will try to start the container with the provided retriers, if none are provided it will use the default retriers.
158159
// Default being: 1. tries to download image for "linux/x86_64" platform 2. simply starts again without changing anything
159160
func StartContainerWithRetry(l zerolog.Logger, req tc.GenericContainerRequest, retriers ...StartContainerRetrier) (tc.Container, error) {
160-
var ct tc.Container
161-
var err error
161+
var (
162+
ct tc.Container
163+
err error
164+
)
162165

163166
ct, err = tc.GenericContainer(testcontext.Get(nil), req)
164167
if err == nil {
@@ -169,7 +172,26 @@ func StartContainerWithRetry(l zerolog.Logger, req tc.GenericContainerRequest, r
169172
retriers = append(retriers, LinuxPlatformImageRetrier, NaiveRetrier)
170173
}
171174

172-
l.Info().Err(err).Msgf("Cannot start %s container, retrying", req.Name)
175+
l.Warn().Err(err).Msgf("Cannot start %s container, retrying", req.Name)
176+
177+
// DEBUG: Print logs if we can
178+
cLogs, err := ct.Logs(context.Background())
179+
if err != nil {
180+
l.Debug().Err(err).Msgf("Cannot get logs for %s container", req.Name)
181+
} else {
182+
l.Debug().Msgf("Container Logs for %s:\n", req.Name)
183+
if logging.LogLevelEnvVar == "debug" {
184+
fmt.Printf("Container Logs for %s:\n", req.Name)
185+
var logs []byte
186+
_, err = cLogs.Read(logs)
187+
if err != nil {
188+
fmt.Println("Failed to read logs from container")
189+
fmt.Println(err)
190+
} else {
191+
fmt.Println(string(logs))
192+
}
193+
}
194+
}
173195

174196
req.Reuse = true // Try and see if we can reuse the container for a retry
175197
for _, retrier := range retriers {

0 commit comments

Comments
 (0)