fix(docker): make the pipeline image build and run - #102
Merged
Conversation
…tive rustup-init.sh skips long options when deciding whether it needs a tty, so --yes left need_tty=yes and the install aborted with 'Unable to run interactively' inside docker build. Only the short -y sets need_tty=no.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Two defects found running the container on a real machine for the first time. Both are container-only; no Rust or dashboard code changes.
1. Build failed: rustup ran interactively
The
rust-builderstage passed--yesto rustup's installer. That looks equivalent to-y, butrustup-init.shparses its own arguments to decide whether it needs a tty and explicitly skips long options:So
--yesnever clearedneed_tty, and with no tty duringdocker buildthe installer bailed out. Fixed by using-y. The other flags (--profile,--default-toolchain) are consumed by therustup-initbinary rather than the shell wrapper, so they were never affected.2. Every pipeline run failed: no time zone database
The pipeline resolves named IANA zones through jiff and defaults to
America/Los_Angeles(tools/netflow-db/src/main.rs,feed.rs). jiff reads the system tzdb from/usr/share/zoneinfo, but the runtime stage installed onlyca-certificatesandlibbz2-1.0under--no-install-recommends, so no tzdb existed in the image. This never reproduces on a host, where the OS supplies one.Fixed by installing
tzdatain the runtime stage. The build-time smoke check now also asserts/usr/share/zoneinfo/America/Los_Angelesexists, so a future dependency trim fails the build instead of shipping a broken image.Verification
Fix 1 is confirmed against the current
sh.rustup.rs(910 lines): the long-option skip is at lines 139-143 and the abort at lines 179-181, matching the reported error verbatim. Fix 2 is confirmed by the reported failure plus the runtime stage's package list.bun run formatandbun run typecheckpass.Both defects are the
docker buildgap called out as unverified in #98 and #100 — I have no docker-group access on the authoring host, so the image had never been built end to end. Please re-run:Expected: the image builds and prints
4. Note thenfdump-builderstage was CANCELED rather than failed on the previous attempt, so it is still untested in a container; it does pass natively, including the fork'srunatlantis.shsuite.Authored with Claude Code (Fable 5).