testcontainers-node
testcontainers-node copied to clipboard
Container build logs aren't very useful because they're encoded
Expected Behaviour
The configuration page says to set DEBUG=testcontainers* to get all logs. This does indeed return all logs, but the build logs (tagged testcontainers:build) aren't very useful when using BuildKit because they're all base64 encoded.
I expect to get a readable log message like:
testcontainers:build [localhost/9e016c4ce696:bad89bfd767c]
[202/554] cc -Ilibvips/arithmetic/libarithmetic.a.p -Ilibvips/arithmetic -I../libvips/arithmetic -I. -I.. -Ilibvips/include -I../libvips/include -Ilibvips/include/vips -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/x86_64-linux-gnu -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/lib/x86_64-linux-gnu/hdf5/serial/include -I/usr/include/OpenEXR -I/usr/include/Imath -I/usr/include/openjpeg-2.5 -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -DG_DISABLE_CAST_CHECKS -DG_DISABLE_CHECKS -DG_DISABLE_ASSERT -Werror=pointer-arith -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/vips/vips-8.16.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -DHAVE_CONFIG_H=1 -MD -MQ libvips/arithmetic/libarithmetic.a.p/relational.c.o -MF libvips/arithmetic/libarithmetic.a.p/relational.c.o.d -o libvips/arithmetic/libarithmetic.a.p/relational.c.o -c ../libvips/arithmetic/relational.c
Actual Behaviour Testcontainers logs a raw encoded log message:
testcontainers:build [localhost/9e016c4ce696:bad89bfd767c] {"id":"moby.buildkit.trace","aux":"Gv4KCkdzaGEyNTY6MWFmZTZmYjgyOGE4NDdkNWIzMGM1ODUwYzdlOGE1MjM0N2FkNjc0NmMyNjA2NjdlY2RiMjk2NmMxODhlMTUwORILCKbq78IGENqM21cYASKjClsyMDIvNTU0XSBjYyAtSWxpYnZpcHMvYXJpdGhtZXRpYy9saWJhcml0aG1ldGljLmEucCAtSWxpYnZpcHMvYXJpdGhtZXRpYyAtSS4uL2xpYnZpcHMvYXJpdGhtZXRpYyAtSS4gLUkuLiAtSWxpYnZpcHMvaW5jbHVkZSAtSS4uL2xpYnZpcHMvaW5jbHVkZSAtSWxpYnZpcHMvaW5jbHVkZS92aXBzIC1JL3Vzci9pbmNsdWRlL2dsaWItMi4wIC1JL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9nbGliLTIuMC9pbmNsdWRlIC1JL3Vzci9pbmNsdWRlL2xpYm1vdW50IC1JL3Vzci9pbmNsdWRlL2Jsa2lkIC1JL3Vzci9pbmNsdWRlL3BhbmdvLTEuMCAtSS91c3IvaW5jbHVkZS9oYXJmYnV6eiAtSS91c3IvaW5jbHVkZS9mcmVldHlwZTIgLUkvdXNyL2luY2x1ZGUvbGlicG5nMTYgLUkvdXNyL2luY2x1ZGUvZnJpYmlkaSAtSS91c3IvaW5jbHVkZS9jYWlybyAtSS91c3IvaW5jbHVkZS9waXhtYW4tMSAtSS91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251IC1JL3Vzci9pbmNsdWRlL2xpYnJzdmctMi4wIC1JL3Vzci9pbmNsdWRlL2dkay1waXhidWYtMi4wIC1JL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9oZGY1L3NlcmlhbC9pbmNsdWRlIC1JL3Vzci9pbmNsdWRlL09wZW5FWFIgLUkvdXNyL2luY2x1ZGUvSW1hdGggLUkvdXNyL2luY2x1ZGUvb3BlbmpwZWctMi41IC1mdmlzaWJpbGl0eT1oaWRkZW4gLWZkaWFnbm9zdGljcy1jb2xvcj1hbHdheXMgLUROREVCVUcgLURfRklMRV9PRkZTRVRfQklUUz02NCAtV2FsbCAtV2ludmFsaWQtcGNoIC1zdGQ9Z251OTkgLURHX0RJU0FCTEVfQ0FTVF9DSEVDS1MgLURHX0RJU0FCTEVfQ0hFQ0tTIC1ER19ESVNBQkxFX0FTU0VSVCAtV2Vycm9yPXBvaW50ZXItYXJpdGggLWcgLU8yIC1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gLWZmaWxlLXByZWZpeC1tYXA9L2J1aWxkL3ZpcHMvdmlwcy04LjE2LjE9LiAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uIC1XZm9ybWF0IC1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5IC1mY2YtcHJvdGVjdGlvbiAtV2RhdGUtdGltZSAtRF9GT1JUSUZZX1NPVVJDRT0yIC1mUElDIC1wdGhyZWFkIC1ESEFWRV9DT05GSUdfSD0xIC1NRCAtTVEgbGlidmlwcy9hcml0aG1ldGljL2xpYmFyaXRobWV0aWMuYS5wL3JlbGF0aW9uYWwuYy5vIC1NRiBsaWJ2aXBzL2FyaXRobWV0aWMvbGliYXJpdGhtZXRpYy5hLnAvcmVsYXRpb25hbC5jLm8uZCAtbyBsaWJ2aXBzL2FyaXRobWV0aWMvbGliYXJpdGhtZXRpYy5hLnAvcmVsYXRpb25hbC5jLm8gLWMgLi4vbGlidmlwcy9hcml0aG1ldGljL3JlbGF0aW9uYWwuYwo="} +125ms
Steps to Reproduce
- Clone https://github.com/andrewaylett/testcontainers-log-demo
- Run
npm run test - Observe encoded log entries in the output
Environment Information
- Operating System: MacOS
- Docker Version: Docker Desktop 4.41.2
- Node version: 22.15.0
- Testcontainers version: 11.0.3
I tried decoding these messages when adding buildkit support but IIRC it was not at all trivial. I don't know if that's changed.
PR welcome!
Appears to be a base64-encoded protobuf message stored in the aux-property
Indeed. Feel free to raise a PR, but please do not copy/paste schemas into the repository that will inevitably get out of date
Happy to raise a PR when I need access to these logs 👍