-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automatically add LAMBDA_DOCKER_FLAGS with testcontainer labels #8595
Automatically add LAMBDA_DOCKER_FLAGS with testcontainer labels #8595
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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_FLAGS
we 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