Class ProcessBuilderDocker
java.lang.Object
org.aksw.shellgebra.processbuilder.ProcessBuilderCore<ProcessBuilderDocker>
org.aksw.shellgebra.exec.invocation.InvokableProcessBuilderBase<ProcessBuilderDocker>
org.aksw.shellgebra.processbuilder.ProcessBuilderDocker
- All Implemented Interfaces:
Cloneable, IProcessBuilderCore<ProcessBuilderDocker>
Process builder that starts a process in a fresh docker container via docker run.
Use
ProcessBuilderDockerExec to start a process in an already running container.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JvmCommandParserprotected InvocationCompilerprotected ContainerPathResolverprotected Stringprotected FileMapperprotected Stringprotected Booleanprotected String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanWhether the configured command will read from stdin.protected voidapplySettings(ProcessBuilderDocker target) protected static ProcesscatProcess(Path source, Path target) protected ProcessBuilderDockercommandParser(JvmCommandParser commandParser) compiler()compiler(InvocationCompiler compiler) protected ContainerPathResolverprotected ProcessBuilderDockercontainerPathResolver(ContainerPathResolver containerPathResolver) protected booleanstatic StringextractSimpleCatPath(CmdOp cmdOp) If the op is "/virt/cat path" then return path.Set an explicit entrypoint.fileMapper(FileMapper fileMapper) protected StringimageRef()interactive(Boolean interactive) static ProcessBuilderDockerstatic ProcessBuilderDockerof(String imageName, FileMapper fileMapper, String... command) static ProcessBuilderDockerprotected org.testcontainers.containers.GenericContainer<?> setupContainer(CmdOp rawCmdOp, FileMapper fileMapper) start(ProcessRunner executor) booleanWhether the process builder can read from anonymous pipes.booleanWhether the process builder can write to an anonymous pipe.booleanWhether a named pipe can be used with the process builder without risking blocking due to multiple connections being made to it.static StringtoScriptString(CmdOp cmdOp) toString()workingDirectory(String workingDirectory) Methods inherited from class InvokableProcessBuilderBase
clone, command, command, invocation, invocation, scriptMethods inherited from class ProcessBuilderCore
applySettings, directory, directory, environment, redirectError, redirectError, redirectErrorStream, redirectErrorStream, redirectInput, redirectInput, redirectOutput, redirectOutput, self
-
Field Details
-
imageRef
-
entrypoint
-
workingDirectory
-
containerPathResolver
-
fileMapper
-
interactive
-
compiler
-
commandParser
-
-
Constructor Details
-
ProcessBuilderDocker
public ProcessBuilderDocker()
-
-
Method Details
-
supportsAnonPipeRead
public boolean supportsAnonPipeRead()Description copied from interface:IProcessBuilderCoreWhether the process builder can read from anonymous pipes. Docker containers can only bind-mount named pipes but not anonymous pipes. When building pipelines, this flag is used to avoid needless intermediate anon pipes where named ones can be used directly. For pipelines, this is the value of the first process builder. -
supportsAnonPipeWrite
public boolean supportsAnonPipeWrite()Description copied from interface:IProcessBuilderCoreWhether the process builder can write to an anonymous pipe. Docker containers can only bind-mount named pipes but not anonymous pipes. When building pipelines, this flag is used to avoid needless intermediate anon pipes where named ones can be used directly. For pipelines, this is the value of the last process builder. -
supportsDirectNamedPipe
public boolean supportsDirectNamedPipe()Description copied from interface:IProcessBuilderCoreWhether a named pipe can be used with the process builder without risking blocking due to multiple connections being made to it. This method must only return true if only a single connection to that pipe will be openend. A process builder for host or docker may return true. But a group with two or more 'true-returning' members will return false. -
tryParseArgs
-
accessesStdIn
public boolean accessesStdIn()Description copied from interface:IProcessBuilderCoreWhether the configured command will read from stdin. Used to avoid generation of needless named or anon pipes such as in "echo foo | echo bar": where the second link does not read the data from the prior link. -
deriveInteractive
-
of
-
of
-
of
-
imageRef
-
imageRef
-
interactive
-
interactive
-
commandParser
-
jvmCommandParser
-
fileMapper
Set an explicit entrypoint. If none is set, an attempt to infer one from the context will be made upon starting the process.- Parameters:
entrypoint-- Returns:
-
fileMapper
-
workingDirectory
-
workingDirectory
-
compiler
-
compiler
-
start
- Throws:
IOException
-
catProcess
- Throws:
IOException
-
getUserString
- Throws:
IOException
-
toScriptString
-
setupContainer
protected org.testcontainers.containers.GenericContainer<?> setupContainer(CmdOp rawCmdOp, FileMapper fileMapper) throws IOException - Throws:
IOException
-
extractSimpleCatPath
-
cloneActual
- Specified by:
cloneActualin classProcessBuilderCore<ProcessBuilderDocker>
-
containerPathResolver
-
containerPathResolver
-
applySettings
-
toString
-