pkg/build/stage/instruction/from.go

Summary

Maintainability
A
1 hr
Test Coverage
F
0%
package instruction

import (
    "context"

    "github.com/werf/logboek"
    "github.com/werf/werf/v2/pkg/build/stage"
    "github.com/werf/werf/v2/pkg/container_backend"
    "github.com/werf/werf/v2/pkg/docker_registry"
    "github.com/werf/werf/v2/pkg/util"
)

type From struct {
    stage.BaseStage

    BaseImageReference  string
    BaseImageRepoDigest string
}

func NewFrom(baseImageReference, baseImageRepoDigest string, opts *stage.BaseStageOptions) *From {
    return &From{
        BaseImageReference:  baseImageReference,
        BaseImageRepoDigest: baseImageRepoDigest,
        BaseStage: *stage.NewBaseStage(
            stage.StageName("FROM"),
            opts,
        ),
    }
}

func (stg *From) HasPrevStage() bool {
    return false
}

func (stg *From) IsStapelStage() bool {
    return false
}

func (stg *From) UsesBuildContext() bool {
    return false
}

func (stg *From) ExpandDependencies(ctx context.Context, c stage.Conveyor, baseEnv map[string]string) error {
    return nil
}

func (stg *From) PrepareImage(ctx context.Context, c stage.Conveyor, cb container_backend.ContainerBackend, prevBuiltImage, stageImage *stage.StageImage, buildContextArchive container_backend.BuildContextArchiver) error {
    return nil
}

func (s *From) FetchDependencies(_ context.Context, _ stage.Conveyor, _ container_backend.ContainerBackend, _ docker_registry.GenericApiInterface) error {
    return nil
}

func (s *From) PreRun(ctx context.Context, _ stage.Conveyor) error {
    logboek.Context(ctx).LogFDetails("      ref: %s\n", s.BaseImageReference)
    if s.BaseImageRepoDigest != "" {
        logboek.Context(ctx).LogFDetails("   digest: %s\n", s.BaseImageRepoDigest)
    }
    return nil
}

func (s *From) GetDependencies(ctx context.Context, c stage.Conveyor, cb container_backend.ContainerBackend, prevImage, prevBuiltImage *stage.StageImage, buildContextArchive container_backend.BuildContextArchiver) (string, error) {
    var args []string
    args = append(args, "BaseImageReference", s.BaseImageReference)
    if s.BaseImageRepoDigest != "" {
        args = append(args, "BaseImageRepoDigest", s.BaseImageRepoDigest)
    }
    return util.Sha256Hash(args...), nil
}