package instructions
import "github.com/moby/buildkit/frontend/dockerfile/instructions"
Index ¶
- func HasStage(s []Stage, name string) (int, bool)
- func IsCurrentStage(s []Stage, name string) bool
- func IsUnknownInstruction(err error) bool
- func Parse(ast *parser.Node) (stages []Stage, metaArgs []ArgCommand, err error)
- func ParseInstruction(node *parser.Node) (interface{}, error)
- type AddCommand
- func (c *AddCommand) Expand(expander SingleWordExpander) error
- func (c *AddCommand) Name() string
- func (c *AddCommand) String() string
- type ArgCommand
- func (c *ArgCommand) Expand(expander SingleWordExpander) error
- func (c *ArgCommand) Name() string
- func (c *ArgCommand) String() string
- type BFlags
- func NewBFlags() *BFlags
- func NewBFlagsWithArgs(args []string) *BFlags
- func (bf *BFlags) AddBool(name string, def bool) *Flag
- func (bf *BFlags) AddString(name string, def string) *Flag
- func (bf *BFlags) AddStrings(name string) *Flag
- func (bf *BFlags) Parse() error
- type CmdCommand
- type Command
- type CopyCommand
- func (c *CopyCommand) Expand(expander SingleWordExpander) error
- func (c *CopyCommand) Name() string
- func (c *CopyCommand) String() string
- type EntrypointCommand
- type EnvCommand
- func (c *EnvCommand) Expand(expander SingleWordExpander) error
- func (c *EnvCommand) Name() string
- func (c *EnvCommand) String() string
- type ExposeCommand
- type Flag
- type FlagType
- type HealthCheckCommand
- type KeyValuePair
- type KeyValuePairOptional
- type KeyValuePairs
- type LabelCommand
- func NewLabelCommand(k string, v string, NoExp bool) *LabelCommand
- func (c *LabelCommand) Expand(expander SingleWordExpander) error
- func (c *LabelCommand) Name() string
- func (c *LabelCommand) String() string
- type MaintainerCommand
- type OnbuildCommand
- type PlatformSpecific
- type RunCommand
- type ShellCommand
- type ShellDependantCmdLine
- type SingleWordExpander
- type SourcesAndDest
- type Stage
- type StopSignalCommand
- func (c *StopSignalCommand) CheckPlatform(platform string) error
- func (c *StopSignalCommand) Expand(expander SingleWordExpander) error
- func (c *StopSignalCommand) Name() string
- func (c *StopSignalCommand) String() string
- type SupportsSingleWordExpansion
- type UnknownInstruction
- type UserCommand
- func (c *UserCommand) Expand(expander SingleWordExpander) error
- func (c *UserCommand) Name() string
- func (c *UserCommand) String() string
- type VolumeCommand
- func (c *VolumeCommand) Expand(expander SingleWordExpander) error
- func (c *VolumeCommand) Name() string
- func (c *VolumeCommand) String() string
- type WorkdirCommand
Functions ¶
func HasStage ¶
HasStage looks for the presence of a given stage name
func IsCurrentStage ¶
IsCurrentStage check if the stage name is the current stage
func IsUnknownInstruction ¶
IsUnknownInstruction checks if the error is an UnknownInstruction or a parseError containing an UnknownInstruction
func Parse ¶
func Parse(ast *parser.Node) (stages []Stage, metaArgs []ArgCommand, err error)
Parse a Dockerfile into a collection of buildable stages. metaArgs is a collection of ARG instructions that occur before the first FROM.
func ParseInstruction ¶
ParseInstruction converts an AST to a typed instruction (either a command or a build stage beginning when encountering a `FROM` statement)
Types ¶
type AddCommand ¶
type AddCommand struct { SourcesAndDest Chown string // contains filtered or unexported fields }
AddCommand : ADD foo /path
Add the file 'foo' to '/path'. Tarball and Remote URL (http, https) handling exist here. If you do not wish to have this automatic handling, use COPY.
func (*AddCommand) Expand ¶
func (c *AddCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*AddCommand) Name ¶
func (c *AddCommand) Name() string
Name of the command
func (*AddCommand) String ¶
func (c *AddCommand) String() string
type ArgCommand ¶
type ArgCommand struct { KeyValuePairOptional // contains filtered or unexported fields }
ArgCommand : ARG name[=value]
Adds the variable foo to the trusted list of variables that can be passed to builder using the --build-arg flag for expansion/substitution or passing to 'run'. Dockerfile author may optionally set a default value of this variable.
func (*ArgCommand) Expand ¶
func (c *ArgCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*ArgCommand) Name ¶
func (c *ArgCommand) Name() string
Name of the command
func (*ArgCommand) String ¶
func (c *ArgCommand) String() string
type BFlags ¶
type BFlags struct { Args []string // actual flags/args from cmd line Err error // contains filtered or unexported fields }
BFlags contains all flags information for the builder
func NewBFlags ¶
func NewBFlags() *BFlags
NewBFlags returns the new BFlags struct
func NewBFlagsWithArgs ¶
NewBFlagsWithArgs returns the new BFlags struct with Args set to args
func (*BFlags) AddBool ¶
AddBool adds a bool flag to BFlags Note, any error will be generated when Parse() is called (see Parse).
func (*BFlags) AddString ¶
AddString adds a string flag to BFlags Note, any error will be generated when Parse() is called (see Parse).
func (*BFlags) AddStrings ¶
AddStrings adds a string flag to BFlags that can match multiple values
func (*BFlags) Parse ¶
Parse parses and checks if the BFlags is valid. Any error noticed during the AddXXX() funcs will be generated/returned here. We do this because an error during AddXXX() is more like a compile time error so it doesn't matter too much when we stop our processing as long as we do stop it, so this allows the code around AddXXX() to be just:
defFlag := AddString("description", "")
w/o needing to add an if-statement around each one.
type CmdCommand ¶
type CmdCommand struct { ShellDependantCmdLine // contains filtered or unexported fields }
CmdCommand : CMD foo
Set the default command to run in the container (which may be empty). Argument handling is the same as RUN.
func (*CmdCommand) Name ¶
func (c *CmdCommand) Name() string
Name of the command
func (*CmdCommand) String ¶
func (c *CmdCommand) String() string
type Command ¶
type Command interface { Name() string }
Command is implemented by every command present in a dockerfile
func ParseCommand ¶
ParseCommand converts an AST to a typed Command
type CopyCommand ¶
type CopyCommand struct { SourcesAndDest From string Chown string // contains filtered or unexported fields }
CopyCommand : COPY foo /path
Same as 'ADD' but without the tar and remote url handling.
func (*CopyCommand) Expand ¶
func (c *CopyCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*CopyCommand) Name ¶
func (c *CopyCommand) Name() string
Name of the command
func (*CopyCommand) String ¶
func (c *CopyCommand) String() string
type EntrypointCommand ¶
type EntrypointCommand struct { ShellDependantCmdLine // contains filtered or unexported fields }
EntrypointCommand : ENTRYPOINT /usr/sbin/nginx
Set the entrypoint to /usr/sbin/nginx. Will accept the CMD as the arguments to /usr/sbin/nginx. Uses the default shell if not in JSON format.
Handles command processing similar to CMD and RUN, only req.runConfig.Entrypoint is initialized at newBuilder time instead of through argument parsing.
func (*EntrypointCommand) Name ¶
func (c *EntrypointCommand) Name() string
Name of the command
func (*EntrypointCommand) String ¶
func (c *EntrypointCommand) String() string
type EnvCommand ¶
type EnvCommand struct { Env KeyValuePairs // kvp slice instead of map to preserve ordering // contains filtered or unexported fields }
EnvCommand : ENV key1 value1 [keyN valueN...]
func (*EnvCommand) Expand ¶
func (c *EnvCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*EnvCommand) Name ¶
func (c *EnvCommand) Name() string
Name of the command
func (*EnvCommand) String ¶
func (c *EnvCommand) String() string
type ExposeCommand ¶
type ExposeCommand struct { Ports []string // contains filtered or unexported fields }
ExposeCommand : EXPOSE 6667/tcp 7000/tcp
Expose ports for links and port mappings. This all ends up in req.runConfig.ExposedPorts for runconfig.
func (*ExposeCommand) Name ¶
func (c *ExposeCommand) Name() string
Name of the command
func (*ExposeCommand) String ¶
func (c *ExposeCommand) String() string
type Flag ¶
Flag contains all information for a flag
func (*Flag) IsTrue ¶
IsTrue checks if a bool flag is true
func (*Flag) IsUsed ¶
IsUsed checks if the flag is used
type FlagType ¶
type FlagType int
FlagType is the type of the build flag
type HealthCheckCommand ¶
type HealthCheckCommand struct { Health *container.HealthConfig // contains filtered or unexported fields }
HealthCheckCommand : HEALTHCHECK foo
Set the default healthcheck command to run in the container (which may be empty). Argument handling is the same as RUN.
func (*HealthCheckCommand) Name ¶
func (c *HealthCheckCommand) Name() string
Name of the command
func (*HealthCheckCommand) String ¶
func (c *HealthCheckCommand) String() string
type KeyValuePair ¶
KeyValuePair represent an arbitrary named value (useful in slice instead of map[string] string to preserve ordering)
func (*KeyValuePair) String ¶
func (kvp *KeyValuePair) String() string
type KeyValuePairOptional ¶
KeyValuePairOptional is the same as KeyValuePair but Value is optional
func (*KeyValuePairOptional) ValueString ¶
func (kvpo *KeyValuePairOptional) ValueString() string
type KeyValuePairs ¶
type KeyValuePairs []KeyValuePair
KeyValuePairs is a slice of KeyValuePair
type LabelCommand ¶
type LabelCommand struct { Labels KeyValuePairs // kvp slice instead of map to preserve ordering // contains filtered or unexported fields }
LabelCommand : LABEL some json data describing the image
Sets the Label variable foo to bar,
func NewLabelCommand ¶
func NewLabelCommand(k string, v string, NoExp bool) *LabelCommand
NewLabelCommand creates a new 'LABEL' command
func (*LabelCommand) Expand ¶
func (c *LabelCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*LabelCommand) Name ¶
func (c *LabelCommand) Name() string
Name of the command
func (*LabelCommand) String ¶
func (c *LabelCommand) String() string
type MaintainerCommand ¶
type MaintainerCommand struct { Maintainer string // contains filtered or unexported fields }
MaintainerCommand : MAINTAINER maintainer_name
func (*MaintainerCommand) Name ¶
func (c *MaintainerCommand) Name() string
Name of the command
func (*MaintainerCommand) String ¶
func (c *MaintainerCommand) String() string
type OnbuildCommand ¶
type OnbuildCommand struct { Expression string // contains filtered or unexported fields }
OnbuildCommand : ONBUILD <some other command>
func (*OnbuildCommand) Name ¶
func (c *OnbuildCommand) Name() string
Name of the command
func (*OnbuildCommand) String ¶
func (c *OnbuildCommand) String() string
type PlatformSpecific ¶
PlatformSpecific adds platform checks to a command
type RunCommand ¶
type RunCommand struct { ShellDependantCmdLine // contains filtered or unexported fields }
RunCommand : RUN some command yo
run a command and commit the image. Args are automatically prepended with the current SHELL which defaults to 'sh -c' under linux or 'cmd /S /C' under Windows, in the event there is only one argument The difference in processing:
RUN echo hi # sh -c echo hi (Linux) RUN echo hi # cmd /S /C echo hi (Windows) RUN [ "echo", "hi" ] # echo hi
func (*RunCommand) Name ¶
func (c *RunCommand) Name() string
Name of the command
func (*RunCommand) String ¶
func (c *RunCommand) String() string
type ShellCommand ¶
ShellCommand : SHELL powershell -command
Set the non-default shell to use.
func (*ShellCommand) Name ¶
func (c *ShellCommand) Name() string
Name of the command
func (*ShellCommand) String ¶
func (c *ShellCommand) String() string
type ShellDependantCmdLine ¶
ShellDependantCmdLine represents a cmdline optionally prepended with the shell
type SingleWordExpander ¶
SingleWordExpander is a provider for variable expansion where 1 word => 1 output
type SourcesAndDest ¶
type SourcesAndDest []string
SourcesAndDest represent a list of source files and a destination
func (SourcesAndDest) Dest ¶
func (s SourcesAndDest) Dest() string
Dest path of the operation
func (SourcesAndDest) Sources ¶
func (s SourcesAndDest) Sources() []string
Sources list the source paths
type Stage ¶
type Stage struct { Name string Commands []Command BaseName string SourceCode string Platform string }
Stage represents a single stage in a multi-stage build
func CurrentStage ¶
CurrentStage return the last stage in a slice
func (*Stage) AddCommand ¶
AddCommand to the stage
type StopSignalCommand ¶
type StopSignalCommand struct { Signal string // contains filtered or unexported fields }
StopSignalCommand : STOPSIGNAL signal
Set the signal that will be used to kill the container.
func (*StopSignalCommand) CheckPlatform ¶
func (c *StopSignalCommand) CheckPlatform(platform string) error
CheckPlatform checks that the command is supported in the target platform
func (*StopSignalCommand) Expand ¶
func (c *StopSignalCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*StopSignalCommand) Name ¶
func (c *StopSignalCommand) Name() string
Name of the command
func (*StopSignalCommand) String ¶
func (c *StopSignalCommand) String() string
type SupportsSingleWordExpansion ¶
type SupportsSingleWordExpansion interface { Expand(expander SingleWordExpander) error }
SupportsSingleWordExpansion interface marks a command as supporting variable expansion
type UnknownInstruction ¶
UnknownInstruction represents an error occurring when a command is unresolvable
func (*UnknownInstruction) Error ¶
func (e *UnknownInstruction) Error() string
type UserCommand ¶
type UserCommand struct { User string // contains filtered or unexported fields }
UserCommand : USER foo
Set the user to 'foo' for future commands and when running the ENTRYPOINT/CMD at container run time.
func (*UserCommand) Expand ¶
func (c *UserCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*UserCommand) Name ¶
func (c *UserCommand) Name() string
Name of the command
func (*UserCommand) String ¶
func (c *UserCommand) String() string
type VolumeCommand ¶
type VolumeCommand struct { Volumes []string // contains filtered or unexported fields }
VolumeCommand : VOLUME /foo
Expose the volume /foo for use. Will also accept the JSON array form.
func (*VolumeCommand) Expand ¶
func (c *VolumeCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*VolumeCommand) Name ¶
func (c *VolumeCommand) Name() string
Name of the command
func (*VolumeCommand) String ¶
func (c *VolumeCommand) String() string
type WorkdirCommand ¶
type WorkdirCommand struct { Path string // contains filtered or unexported fields }
WorkdirCommand : WORKDIR /tmp
Set the working directory for future RUN/CMD/etc statements.
func (*WorkdirCommand) Expand ¶
func (c *WorkdirCommand) Expand(expander SingleWordExpander) error
Expand variables
func (*WorkdirCommand) Name ¶
func (c *WorkdirCommand) Name() string
Name of the command
func (*WorkdirCommand) String ¶
func (c *WorkdirCommand) String() string
Source Files ¶
bflag.go commands.go commands_nosecrets.go commands_nossh.go errors_unix.go parse.go support.go
- Version
- v0.7.2
- Published
- Jul 27, 2020
- Platform
- js/wasm
- Imports
- 12 packages
- Last checked
- 12 hours ago –
Tools for package owners.