Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
It adds the
CopyDirToContainer
method to the container interface, implementing it for Docker.This new method uses the standard library to
tar
the source directory and copy it to the container.We have updated the existing
CopyFileToContainer
method to check if the host path passed is a directory, calling the new method if/when needed.We have added unit tests for both the tar directory code and for the copy dir, updating the existing tests.
Finally the docs have been updated.
Why is it important?
First, feature parity with the tc-java project, which supports copying directories to containers.
Second, we detected this feature was missing while contributing to a demo where it needed to upload an entire directory to a place it does not exist in the target container, because the underlying Docker image did not have it on its file system. While trying to find the workaround to it, we identified that this could be a quick win for tc-go, so instead of doing the following workarounds:
it would be much more simple to just upload the directory to its parent.
Examples
See the changes in the docs ar even the new tests to understand how to use it.
Related issues