Automatically add LAMBDA_DOCKER_FLAGS with testcontainer labels#8595
Automatically add LAMBDA_DOCKER_FLAGS with testcontainer labels#8595eddumelendez merged 2 commits intotestcontainers:mainfrom
Conversation
|
Thanks for a great contribution, @dfangl ! |
| if (existingLambdaDockerFlags != null) { | ||
| lambdaDockerFlags = existingLambdaDockerFlags + " " + lambdaDockerFlags; | ||
| } | ||
| withEnv("LAMBDA_DOCKER_FLAGS", lambdaDockerFlags); |
There was a problem hiding this comment.
Thinking out loud: LocalStack could detect running in a container and copy its own flags (via inspect since it has access to Docker socket) to Lambda containers it creates
There was a problem hiding this comment.
That would be an option as well, I agree. However, this was not a feature ever requested by our customers, often it is sufficient to manually specify it via the various docker flags.
My personal issue with it is: Would the user expect labels to automatically propagate in all cases, and I am not too sure about that. Of course we could make this configurable as well. I will put some more thought onto that and discuss it internally.
Another thing that comes to mind is the propagation of labels of the image itself, and of e.g. docker compose, which have to be considered and maybe filtered.
Motivation
We have been seeing issues (like localstack/localstack#8616) where the Lambda containers spawned by LocalStack were not removed after the testcontainer session finished.
This can happen if the LocalStack container is killed before it can finish cleaning up all spawned resources.
Using
LAMBDA_DOCKER_FLAGSwe can, for example, add labels to all spawned lambda containers. Using this mechanism, we can add the same labels testcontainers sets on spawned containers on the lambda containers created by LocalStack, and let testcontainers handle the termination after the test session finishes.Changes
LAMBDA_DOCKER_FLAGS