Skip to content

Commit

Permalink
Fix shipwright-io#519 capital letter in stage names
Browse files Browse the repository at this point in the history
update stage code so that when comparing the BaseName of
a stage against the recorded, lowercase version of a Stage name
the BaseName is also lowercased.
  • Loading branch information
cvgw committed Jan 20, 2020
1 parent 00a01f9 commit e652f81
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
13 changes: 13 additions & 0 deletions integration/dockerfiles/Dockerfile_test_from_multistage_capital
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM alpine as base_stage

RUN echo base_stage


FROM base_stage as BUG_stage

RUN echo BUG_stage


FROM BUG_stage as final_stage

RUN echo final_stage
11 changes: 9 additions & 2 deletions pkg/dockerfile/dockerfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,17 @@ func Stages(opts *config.KanikoOptions) ([]config.KanikoStage, error) {
// baseImageIndex returns the index of the stage the current stage is built off
// returns -1 if the current stage isn't built off a previous stage
func baseImageIndex(currentStage int, stages []instructions.Stage) int {
currentStageBaseName := strings.ToLower(stages[currentStage].BaseName)

for i, stage := range stages {
if i > currentStage {
break
}
if stage.Name == stages[currentStage].BaseName {
if stage.Name == currentStageBaseName {
return i
}
}

return -1
}

Expand Down Expand Up @@ -245,15 +248,19 @@ func ParseCommands(cmdArray []string) ([]instructions.Command, error) {

// SaveStage returns true if the current stage will be needed later in the Dockerfile
func saveStage(index int, stages []instructions.Stage) bool {
currentStageName := stages[index].Name

for stageIndex, stage := range stages {
if stageIndex <= index {
continue
}
if stage.BaseName == stages[index].Name {

if strings.ToLower(stage.BaseName) == currentStageName {
if stage.BaseName != "" {
return true
}
}
}

return false
}

0 comments on commit e652f81

Please sign in to comment.