Skip to content
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

build: allow builds from stdin for multi-node builders #2656

Merged
merged 1 commit into from
Aug 22, 2024

Conversation

tonistiigi
Copy link
Member

fixes #2193

When building from same stream all nodes need to read data from the same stream. In order to achive that there is a new SyncMultiReader wrapper that sends the stream concurrently to all readers. Readers must read at similar speed or pauses will happen while they wait for each other.

Dockerfiles were already written to disk before sent. Now the file written by the first node is reused for others.

When building from same stream all nodes need to read
data from the same stream. In order to achive that there
is a new SyncMultiReader wrapper that sends the stream
concurrently to all readers. Readers must read at similar
speed or pauses will happen while they wait for each other.

Dockerfiles were already written to disk before sent. Now
the file written by first node is reused for others.

Signed-off-by: Tonis Tiigi <[email protected]>
@crazy-max
Copy link
Member

I was wondering if we could have integration tests for this. I think we could have one similar to

func testCreateRemoteContainer(t *testing.T, sb integration.Sandbox) {
where we would create two container builders and a remote one using both as nodes with docker-container:// protocol?

@thompson-shaun thompson-shaun merged commit e403ab2 into docker:master Aug 22, 2024
106 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build with multiple platform and stdin crashes
3 participants