Change docker containers to not require the docker socket from the host #260
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.
Previously the Docker containers would require the passing of the host machine's docker socket to work correctly. This caused a ton of issues because the Jenkins container would often have its workspaces in a bind mount. That meant that you couldn't pass in the jobs workspace in Jenkins to a child container with out knowing the full path to the workspace. This was a total pain.
This PR changes the containers so that they use the s6 overlay to run both Docker daemon and Jenkins. They now run a complete docker inside the containers. The major downside is that Docker requires that the containers are run with the
--privledge
flag to make the docker daemon work correctly. Also CICD tests can be a lot slower since there is not cache sharing from the host machine too the devcontainer and then to the JFR.Overall I'm pretty happy with this change.