abstract class Builder extends Alvine

Builder

Mit von Builder abgeleiteten Klassen lassen sich Docker-Images erstellen. Die abgeleiteten Klassen müssen die Methoden Builder::getDockerFile() und Builder::getImageTag() und Builder::getPorts() überschreiben.

Im Anschluß kann über Builder::buildImage() das Image auf dem Dockerhost gebaut werden.

``` $builder = new MyBuilder($dokerclient); $builder->buildImage()->pushImage();

Properties

protected Client $client
protected InstructionSet $instructionSet
protected string $imageID

Methods

__construct(Client $dockerhost, InstructionSet $instructionSet = null)

Neuen Builder erstellen

Instance
setDistribution(InstructionSet $instractionSet, RepoTag $repoTag = null)

Distribution setzen

Dockerfile
getDockerFile()

Dockerfile

RepoTag
getImageTag()

Image-Tag

PortMapping>
getPorts()

Portdefinition

Instance
buildImage($cache = true)

Image bauen

Instance
pushImage()

Image ins Repositorium schreiben

string
getImageID()

ID des Images

Details

at line 70
__construct(Client $dockerhost, InstructionSet $instructionSet = null)

Neuen Builder erstellen

Parameters

Client $dockerhost Docker-Build-Server
InstructionSet $instructionSet Anweisungen

at line 92
Instance setDistribution(InstructionSet $instractionSet, RepoTag $repoTag = null)

Distribution setzen

Wurde bereits Instance::buildImage() ausgeführt, so setzt diese Methode die interne ImageID zurück, so das erneut Instance::buildImage() ausgeführt werden muss,

Parameters

InstructionSet $instractionSet Anweisungen
RepoTag $repoTag ImageTag

Return Value

Instance Ergebnis des Builds

at line 107
abstract Dockerfile getDockerFile()

Dockerfile

Gibt das Dockerfile für das Image zurück. Diese Methode muss vom Konkreten Image-Builder überschrieben werden und das vollständige Dockerfile-Objekt zurückgeben.

Return Value

Dockerfile Dockerfile

at line 122
abstract protected RepoTag getImageTag()

Image-Tag

Der Imagetag spezifiziert den Namen, das Repositorium und die Version des Images. Dadurch lassen sich unterschieldiche Images bauen und verwalten.

return new \Alvine\Infrastructure\Docker\RepoTag('myImage', '1.0.13', 'registry.example.com:5000');

Return Value

RepoTag Aktueller Tag des Images

at line 133
abstract protected PortMapping> getPorts()

Portdefinition

Die Portdefinition legt fest, wie die Ports veröffentlicht werden sollen. Neben der einfachen Bereitstellung, können hier Einträge in Vulcand (Proxy) oder Etcd (Configuration) veranlasst werden.

Return Value

PortMapping>

at line 144
Instance buildImage($cache = true)

Image bauen

Diese Methode baut das eigentliche Image und führt den Erstellprozess durch.

Parameters

$cache

Return Value

Instance Ergebnis des Builds

Exceptions

BuildException

at line 161
Instance pushImage()

Image ins Repositorium schreiben

Return Value

Instance

Exceptions

BuildException

at line 184
string getImageID()

ID des Images

Wurde das Image über Instace::buildImage gebaut, so gibt die Methode die Image-ID des build-Prozesses zurück.

Wurde noch kein build durchgeführt, fragt die Methode am Dockerhost nach.

Return Value

string Image-ID