fix: stacker convert should check if FROMAS base is in current build - #785
Open
jmblatten wants to merge 1 commit into
Open
fix: stacker convert should check if FROMAS base is in current build#785jmblatten wants to merge 1 commit into
jmblatten wants to merge 1 commit into
Conversation
Currently, stacker converts the base part of a "FROM base AS name"
found in a dockerfile to stacker's from directive with type:docker
and url:docker.
However, the base could be a build stage in the current session.
In that case, stacker's from directive should be type:built and
tag:<something> instead.
Signed-off-by: Joy Latten <joylatten@geico.com>
jmblatten
requested review from
hallyn,
mikemccracken,
raharper,
rchamarthy,
rchincha,
smoser and
tych0
as code owners
August 5, 2026 22:12
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.
Currently, stacker converts the base part of a "FROM base AS name"
found in a dockerfile to stacker's from directive with type:docker
and url:docker.
However, the base could be a build stage in the current session.
In that case, stacker's from directive should be type:built and tag:name instead.
This fix cycles thru the build stages to determine which are build stages and which
are bases before converting and sets a flag.
What type of PR is this?
bug
Which issue does this PR fix:
#756
What does this PR do / Why do we need it:
See above.
If an issue # is not available please add repro steps and logs showing the issue:
#756
Steps to reproduce:
myhello.go file contents,
Dockerfile contents:
Resulting, converted stacker.yaml,
Note that a stacker build will fail because there isn't a base layer A or B. They are instead stages in a build. Thus they perhaps should be represented as stages in the converted stacker file.
Testing done on this change:
Same Dockerfile and myhello.go from above.
stacker with fix, resulting converted stacker.yaml,
Note that A and B are tagged while mybuild and mybase pull in base images. stacker build should work.
Automation added to e2e:
None
Will this break upgrades or downgrades?
No
Does this PR introduce any user-facing change?:
No, because previously the converted file would not build.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.