Skip to content

[container-build]: Support inline Dockerfile from stdin#827

Merged
jglogan merged 2 commits intoapple:mainfrom
saehejkang:container-build-support-inline-stdin
Nov 18, 2025
Merged

[container-build]: Support inline Dockerfile from stdin#827
jglogan merged 2 commits intoapple:mainfrom
saehejkang:container-build-support-inline-stdin

Conversation

@saehejkang
Copy link
Copy Markdown
Contributor

@saehejkang saehejkang commented Oct 31, 2025

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Motivation and Context

Closes #727

Tested variations of commands with stdin below

echo -e "FROM alpine\nRUN echo 'Hello World'" | container build -t myimage -f - .
container build -t myimage -f - . <<'EOF'
FROM alpine
RUN echo 'Hello World'
EOF
echo -e "FROM alpine\nRUN echo 'Hello World'" > Dockerfile.tmp
container build -t myimage -f Dockerfile.tmp .
rm Dockerfile.tmp

Testing

  • Tested locally
  • Added/updated tests
  • Added/updated docs

@saehejkang saehejkang force-pushed the container-build-support-inline-stdin branch from 96aad2b to 9a0d411 Compare October 31, 2025 05:43
Comment thread Sources/ContainerCommands/BuildCommand.swift
Comment thread Sources/ContainerCommands/BuildCommand.swift Outdated
@saehejkang saehejkang force-pushed the container-build-support-inline-stdin branch from 71ea529 to 7b1c1fb Compare November 2, 2025 05:47
jglogan added a commit that referenced this pull request Nov 15, 2025
When working on test cases for #827 and #734 the following issues
occurred
  1. There was no support to pass in `Data` for `stdin` (input pipe added
    + new argument for the data)
  2. Pipes were getting blocked during the `try process.run()` and
    `process.waitUntilExit()` (order of operations were fixed)
  3. We need the binary data for directly piping the `stdout` data to
    `stdin`, and converting the data to a `string`, returns `""` (added a
    new value to the tuple)

I opened a new PR here for this as I did not want to bloat the other PRs
with so many updates. At first I thought of creating a new function
named `runStdinStdout`, but that seemed redundant as it pretty much was
going to do the same thing as `run`.

## Testing
- [x] Tested locally
- [x] Added/updated tests
- [ ] Added/updated docs

---------

Co-authored-by: J Logan <john_logan@apple.com>
@saehejkang saehejkang force-pushed the container-build-support-inline-stdin branch 2 times, most recently from 5a5d3f7 to 54ef955 Compare November 15, 2025 03:08
@saehejkang saehejkang force-pushed the container-build-support-inline-stdin branch from 8deb0b0 to 4d961b9 Compare November 15, 2025 03:09
@jglogan jglogan merged commit 9b43553 into apple:main Nov 18, 2025
2 checks passed
@saehejkang saehejkang deleted the container-build-support-inline-stdin branch November 18, 2025 17:46
saehejkang added a commit to saehejkang/container that referenced this pull request Jan 27, 2026
When working on test cases for apple#827 and apple#734 the following issues
occurred
  1. There was no support to pass in `Data` for `stdin` (input pipe added
    + new argument for the data)
  2. Pipes were getting blocked during the `try process.run()` and
    `process.waitUntilExit()` (order of operations were fixed)
  3. We need the binary data for directly piping the `stdout` data to
    `stdin`, and converting the data to a `string`, returns `""` (added a
    new value to the tuple)

I opened a new PR here for this as I did not want to bloat the other PRs
with so many updates. At first I thought of creating a new function
named `runStdinStdout`, but that seemed redundant as it pretty much was
going to do the same thing as `run`.

## Testing
- [x] Tested locally
- [x] Added/updated tests
- [ ] Added/updated docs

---------

Co-authored-by: J Logan <john_logan@apple.com>
saehejkang added a commit to saehejkang/container that referenced this pull request Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Request]: Support inline Dockerfile from stdin for container build

2 participants