iotmakerdockerbuilder

package module
v0.4.0-rc014 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2021 License: Apache-2.0 Imports: 22 Imported by: 3

README

iotmaker.docker.builder

English

This project creates a simple way to manipulate containers with the moby docker project

Status: Starting to document in English

Português

Status: Documentando em ingles

Este projeto cria uma API Golang simples para criar e manipular o docker.

Create a docker network / Cria uma rede docker
  var err error
  var netDocker = dockerNetwork.ContainerBuilderNetwork{}
  err = netDocker.Init()
  if err != nil { panic(err) }

  // create a network named cache_delete_after_test, subnet 10.0.0.0/16 e gatway 10.0.0.1
  err = netDocker.NetworkCreate("cache_delete_after_test", "10.0.0.0/16", "10.0.0.1")
  if err != nil { panic(err) }

English: use the container.SetNetworkDocker(&netDocker) command to link the container to the network

Português: use o comando container.SetNetworkDocker(&netDocker) para ligar um container com o docker

Container nats
  var err error

  // create a container
  var container = ContainerBuilder{}
  // set image name for docker pull
  container.SetImageName("nats:latest")
  // link container and network [optional] (next ip address is 10.0.0.2)
  container.SetNetworkDocker(&netDocker)
  // set a container name
  container.SetContainerName("container_delete_nats_after_test")
  // set a waits for the text to appear in the standard container output to proceed [optional]
  container.SetWaitStringWithTimeout("Listening for route connections on 0.0.0.0:6222", 10*time.Second)

  // inialize the container object
  err = container.Init()
  if err != nil { panic(err) }

  // image nats:latest pull command [optional]
  err = container.ImagePull()
  if err != nil { panic(err) }

  // container build and start from image nats:latest
  // waits for the text "Listening for route connections on 0.0.0.0:6222" to appear  in the standard container output
  // to proceed
  err = container.ContainerBuildFromImage()
  if err != nil { panic(err) }
Container from github project
  var err error
  var container = ContainerBuilder{}
  // new image name delete:latest
  container.SetImageName("delete:latest")
  // container name container_delete_server_after_test
  container.SetContainerName("container_delete_server_after_test")
  // git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
  container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")
    
  // see SetGitCloneToBuildWithUserPassworh(), SetGitCloneToBuildWithPrivateSshKey() and
  // SetGitCloneToBuildWithPrivateToken()
    
  // set a waits for the text to appear in the standard container output to proceed [optional]
  container.SetWaitStringWithTimeout("Stating server on port 3000", 10*time.Second)
  // change and open port 3000 to 3030
  container.AddPortToChange("3000", "3030")
  // replace container folder /static to host folder ./test/static
  err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
  if err != nil { panic(err) }
    
  // inicialize container object
  err = container.Init()
  if err != nil { panic(err) }
    
  // builder new image from git project
  err = container.ImageBuildFromServer()
  if err != nil { panic(err) }

  err = container.ContainerBuildFromImage()
  if err != nil { panic(err) }
MongoDB ephemeral
  var err error
  var mongoDocker = &ContainerBuilder{}
  mongoDocker.SetImageName("mongo:latest")
  mongoDocker.SetContainerName("container_delete_mongo_after_test")
  mongoDocker.AddPortToOpen("27017")
  mongoDocker.SetEnvironmentVar(
    []string{
      "--host 0.0.0.0",
    },
  )
  mongoDocker.SetWaitStringWithTimeout(`"msg":"Waiting for connections","attr":{"port":27017`, 20*time.Second)
  err = mongoDocker.Init()
  if err != nil { panic(err) }

  err = mongoDocker.ContainerBuildFromImage()
  if err != nil { panic(err) }
MongoDB
  var err error
  var mongoDocker = &ContainerBuilder{}
  mongoDocker.SetImageName("mongo:latest")
  mongoDocker.SetContainerName("container_delete_mongo_after_test")
  mongoDocker.AddPortToOpen("27017")
  mongoDocker.SetEnvironmentVar(
    []string{
      "--host 0.0.0.0",
    },
  )
  err = mongoDocker.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/data", "/data")
  mongoDocker.SetWaitStringWithTimeout(`"msg":"Waiting for connections","attr":{"port":27017`, 20*time.Second)
  err = mongoDocker.Init()
  err = mongoDocker.ContainerBuildFromImage()
Container from folder
  var err error

  GarbageCollector()
  var container = ContainerBuilder{}
  // new image name delete:latest
  container.SetImageName("delete:latest")
  // set a folder path to make a new image
  container.SetBuildFolderPath("./test/server")
  // container name container_delete_server_after_test
  container.SetContainerName("container_delete_server_after_test")
  // set a waits for the text to appear in the standard container output to proceed [optional]
  container.SetWaitStringWithTimeout("starting server at port 3000", 10*time.Second)
  // change and open port 3000 to 3030
  container.AddPortToOpen("3000")
  // replace container folder /static to host folder ./test/static
  err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
  if err != nil { panic(err) }

  // inicialize container object
  err = container.Init()
  if err != nil { panic(err) }

  // builder new image from folder
  err = container.ImageBuildFromFolder()
  if err != nil { panic(err) }

  // build a new container from image
  err = container.ContainerBuildFromImage()
  if err != nil { panic(err) }

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func GarbageCollector

func GarbageCollector()

GarbageCollector (english): All tests use networks, containers and images with the term "delete" contained in the name.

This function considers that the test is over and that these elements must be removed at the end of each test, and as a guarantee, if any test has failed, it is also used before each test.

GarbageCollector (português): Todos os testes usam redes, containers e imagens com o termo "delete" contido no nome.

Esta função considera que o teste acabou e que estes elementos devem ser removidos ao final de cada teste, e por garantia, caso algum teste tenha falhado, também é usada antes de cada teste.

Types

type ContainerBuilder

type ContainerBuilder struct {
	IPV4Address string
	// contains filtered or unexported fields
}

ContainerBuilder (english):

ContainerBuilder (português): Gerenciador de containers e imagens docker

func (*ContainerBuilder) AddFiileOrFolderToLinkBetweenConputerHostAndContainer

func (e *ContainerBuilder) AddFiileOrFolderToLinkBetweenConputerHostAndContainer(computerHostPath, insideContainerPath string) (err error)

AddFiileOrFolderToLinkBetweenConputerHostAndContainer (english):

AddFiileOrFolderToLinkBetweenConputerHostAndContainer (português): Monta um arquivo ou pasta entre o computador e o container.

computerHostPath:    Caminho do arquivo ou pasta dentro do computador hospedeiro
insideContainerPath: Caminho dentro do container
Example
var err error

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// container name container_delete_server_after_test
container.SetContainerName("container_delete_server_after_test")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")

// see SetGitCloneToBuildWithUserPassworh(), SetGitCloneToBuildWithPrivateSshKey() and
// SetGitCloneToBuildWithPrivateToken()

// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Stating server on port 3000", 10*time.Second)
// change and open port 3000 to 3030
container.AddPortToChange("3000", "3030")
// replace container folder /static to host folder ./test/static
err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	log.Printf("container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer().error: %v", err.Error())
	util.TraceToLog()
	panic(err)
}

// inicialize container object
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// builder new image from git project
err = container.ImageBuildFromServer()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ImageBuildFromServer().error: %v", err.Error())
	panic(err)
}

// container build from image delete:latest
err = container.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ContainerBuildFromImage().error: %v", err.Error())
	panic(err)
}

// container "container_delete_server_after_test" running and ready for use on this code point on port 3030

// read server inside a container on address http://localhost:3030/
var resp *http.Response
resp, err = http.Get("http://localhost:3030/")
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

var body []byte
body, err = ioutil.ReadAll(resp.Body)
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

// print output
fmt.Printf("%s", body)

GarbageCollector()
Output:

<html><body><p>C is life! Golang is a evolution of C</p></body></html>

func (*ContainerBuilder) AddPortToChange

func (e *ContainerBuilder) AddPortToChange(imagePort string, newPort string)

AddPortToChange (english):

AddPortToChange (português): Define as portas a serem expostas na rede alterando o valor da porta definida na imagem e o valor exposto na rede

imagePort: porta definida na imagem, na forma de string numérica
newPort: novo valor da porta a se exposta na rede

  Nota: As portas expostas na criação do container pode ser definidas por SetOpenAllContainersPorts(),
  AddPortToChange() e AddPortToOpen();
  Por padrão, todas as portas ficam fechadas;
  A função ImageListExposedPorts() retorna todas as portas definidas na imagem para serem expostas.
Example
var err error

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// container name container_delete_server_after_test
container.SetContainerName("container_delete_server_after_test")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")

// see SetGitCloneToBuildWithUserPassworh(), SetGitCloneToBuildWithPrivateSshKey() and
// SetGitCloneToBuildWithPrivateToken()

// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Stating server on port 3000", 10*time.Second)
// change and open port 3000 to 3030
container.AddPortToChange("3000", "3030")
// replace container folder /static to host folder ./test/static
err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	log.Printf("container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer().error: %v", err.Error())
	util.TraceToLog()
	panic(err)
}

// inicialize container object
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// builder new image from git project
err = container.ImageBuildFromServer()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ImageBuildFromServer().error: %v", err.Error())
	panic(err)
}

// container build from image delete:latest
err = container.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ContainerBuildFromImage().error: %v", err.Error())
	panic(err)
}

// container "container_delete_server_after_test" running and ready for use on this code point on port 3030

// read server inside a container on address http://localhost:3030/
var resp *http.Response
resp, err = http.Get("http://localhost:3030/")
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

var body []byte
body, err = ioutil.ReadAll(resp.Body)
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

// print output
fmt.Printf("%s", body)

GarbageCollector()
Output:

<html><body><p>C is life! Golang is a evolution of C</p></body></html>

func (*ContainerBuilder) AddPortToOpen

func (e *ContainerBuilder) AddPortToOpen(value string)

AddPortToOpen (english):

AddPortToOpen (português): Define as portas a serem expostas na rede

value: porta na forma de string numérica

  Nota: As portas expostas na criação do container pode ser definidas por SetOpenAllContainersPorts(),
  AddPortToChange() e AddPortToOpen();
  Por padrão, todas as portas ficam fechadas;
  A função ImageListExposedPorts() retorna todas as portas definidas na imagem para serem expostas.
Example
var err error

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// container name container_delete_server_after_test
container.SetContainerName("container_delete_server_after_test")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")

// see SetGitCloneToBuildWithUserPassworh(), SetGitCloneToBuildWithPrivateSshKey() and
// SetGitCloneToBuildWithPrivateToken()

// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Stating server on port 3000", 20*time.Second)
// open port 3000 [optional in this case: default code open all ports]
container.AddPortToOpen("3000")
// replace container folder /static to host folder ./test/static
err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	log.Printf("container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer().error: %v", err.Error())
	util.TraceToLog()
	panic(err)
}

// inicialize container object
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// builder new image from git project
err = container.ImageBuildFromServer()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ImageBuildFromServer().error: %v", err.Error())
	panic(err)
}

// container build from image delete:latest
err = container.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ContainerBuildFromImage().error: %v", err.Error())
	panic(err)
}

// container "container_delete_server_after_test" running and ready for use on this code point on port 3030

// read server inside a container on address http://localhost:3000/
var resp *http.Response
resp, err = http.Get("http://localhost:3000/")
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

var body []byte
body, err = ioutil.ReadAll(resp.Body)
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

// print output
fmt.Printf("%s", body)

GarbageCollector()
Output:

<html><body><p>C is life! Golang is a evolution of C</p></body></html>

func (*ContainerBuilder) ContainerBuildFromImage

func (e *ContainerBuilder) ContainerBuildFromImage() (err error)

ContainerBuildFromImage (english):

ContainerBuildFromImage (português): transforma uma imagem baixada por ImagePull() ou criada por ImageBuildFromFolder() em container

Example
var err error

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// container name container_delete_server_after_test
container.SetContainerName("container_delete_server_after_test")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")

// see SetGitCloneToBuildWithUserPassworh(), SetGitCloneToBuildWithPrivateSshKey() and
// SetGitCloneToBuildWithPrivateToken()

// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Stating server on port 3000", 10*time.Second)
// change and open port 3000 to 3030
container.AddPortToChange("3000", "3030")
// replace container folder /static to host folder ./test/static
err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	log.Printf("container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer().error: %v", err.Error())
	util.TraceToLog()
	panic(err)
}

// inicialize container object
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// builder new image from git project
err = container.ImageBuildFromServer()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ImageBuildFromServer().error: %v", err.Error())
	panic(err)
}

// container build from image delete:latest
err = container.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ContainerBuildFromImage().error: %v", err.Error())
	panic(err)
}

// container "container_delete_server_after_test" running and ready for use on this code point on port 3030

// read server inside a container on address http://localhost:3030/
var resp *http.Response
resp, err = http.Get("http://localhost:3030/")
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

var body []byte
body, err = ioutil.ReadAll(resp.Body)
if err != nil {
	util.TraceToLog()
	log.Printf("http.Get().error: %v", err.Error())
	panic(err)
}

// print output
fmt.Printf("%s", body)

GarbageCollector()
Output:

<html><body><p>C is life! Golang is a evolution of C</p></body></html>

func (*ContainerBuilder) ContainerInspect

func (e *ContainerBuilder) ContainerInspect() (inspect iotmakerdocker.ContainerInspect, err error)

ContainerInspect (english):

ContainerInspect (português): inspeciona o container

func (*ContainerBuilder) ContainerPause

func (e *ContainerBuilder) ContainerPause() (err error)

ContainerPause (english):

ContainerPause (português): pausa o container

func (*ContainerBuilder) ContainerRemove

func (e *ContainerBuilder) ContainerRemove(removeVolumes bool) (err error)

ContainerRemove (english):

ContainerRemove (português): parar e remover o container

removeVolumes: remove os volumes docker vinculados ao container

func (*ContainerBuilder) ContainerStart

func (e *ContainerBuilder) ContainerStart() (err error)

ContainerStart (english):

ContainerStart (português): inicializar um container recem criado ou pausado

func (*ContainerBuilder) ContainerStop

func (e *ContainerBuilder) ContainerStop() (err error)

ContainerStop (english):

ContainerStop (português): parar o container

func (*ContainerBuilder) FindCurrentIPV4Address

func (e *ContainerBuilder) FindCurrentIPV4Address() (IP string, err error)

FindCurrentIPV4Address (english):

FindCurrentIPV4Address (português): Inspeciona a rede e devolve o IP atual do container

Example
var err error

GarbageCollector()

// create a container
var container = ContainerBuilder{}
// set image name for docker pull
container.SetImageName("nats:latest")
// set a container name
container.SetContainerName("container_delete_nats_after_test")
// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Listening for route connections on 0.0.0.0:6222", 10*time.Second)

// inialize the container object
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// image nats:latest pull command [optional]
err = container.ImagePull()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// container build and start from image nats:latest
// waits for the text "Listening for route connections on 0.0.0.0:6222" to appear  in the standard container output
// to proceed
err = container.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	panic(err)
}

var IP string
IP, err = container.FindCurrentIPV4Address()
if err != nil {
	util.TraceToLog()
	panic(err)
}

if IP != container.GetIPV4Address() {
	err = errors.New("all ip address must be a samer IP")
	util.TraceToLog()
	panic(err)
}

// container "container_delete_nats_after_test" running and ready for use on this code point on var IP
// all nats ports are open
// you can use AddPortToOpen("4222"), to open only ports defineds inside code;
// you can use AddPortToChange("4222", "1111") to open only ports defineds inside code and change port 4222 to port
// 1111;
// you can use SetDoNotOpenContainersPorts() to not open containers ports

GarbageCollector()

// use this function to remove image, ONLY before container stoped and deleted
err = container.ImageRemoveByName("nats:latest")
if err != nil {
	util.TraceToLog()
	panic(err)
}

func (*ContainerBuilder) FindTextInsideContainerLog

func (e *ContainerBuilder) FindTextInsideContainerLog(value string) (contains bool, err error)

FindTextInsideContainerLog (english):

FindTextInsideContainerLog (português): procurar por um texto na saída padrão do container.

value: texto procurado

func (*ContainerBuilder) GetChannelEvent

func (e *ContainerBuilder) GetChannelEvent() (channel *chan iotmakerdocker.ContainerPullStatusSendToChannel)

GetChannelEvent (english):

GetChannelEvent (português): Canal disparado durante o processo de image build ou container build e retorna informações como andamento do download da imagem, processo de extração da mesma entre outras informações

Waiting: Esperando o processo ser iniciado pelo docker
Downloading: Estado do download da imagem, caso a mesma não exista na máquina host
  Count: Quantidade de blocos a serem baixados
  Current: Total de bytes baixados até o momento
  Total: Total de bytes a serem baixados
  Percent: Percentual atual do processo com uma casa decimal de precisão
DownloadComplete: todo: fazer
Extracting: Estado da extração da imagem baixada
  Count: Quantidade de blocos a serem extraídos
  Current: Total de bytes extraídos até o momento
  Total: Total de bytes a serem extraídos
  Percent: Percentual atual do processo com uma casa decimal de precisão
PullComplete: todo: fazer
ImageName: nome da imagem baixada
ImageID: ID da imagem baixada. (Cuidado: este valor só é definido ao final do processo)
ContainerID: ID do container criado. (Cuidado: este valor só é definido ao final do processo)
Closed: todo: fazer
Stream: saída padrão do container durante o processo de build
SuccessfullyBuildContainer: sucesso ao fim do processo de build do container
SuccessfullyBuildImage: sucesso ao fim do processo de build da imagem
IdAuxiliaryImages: usado pelo coletor de lixo para apagar as imagens axiliares ao fim do processo de build

func (*ContainerBuilder) GetChannelOnContainerInspect

func (e *ContainerBuilder) GetChannelOnContainerInspect() (channel *chan bool)

GetChannelOnContainerInspect (english):

GetChannelOnContainerInspect (português): Canas disparado a cada ciclo do ticker definido em SetInspectInterval()

func (*ContainerBuilder) GetChannelOnContainerReady

func (e *ContainerBuilder) GetChannelOnContainerReady() (channel *chan bool)

GetChannelOnContainerReady (english):

GetChannelOnContainerReady (português): Canal disparado quando o container está pronto para uso

Nota: Este canal espera o container sinalizar que está pronto, caso SetWaitString() não seja definido, ou espera
pelo texto definido em SetWaitString() aparecer na saída padrão

func (*ContainerBuilder) GetContainerID

func (e *ContainerBuilder) GetContainerID() (ID string)

GetContainerID (english):

GetContainerID (português): Retorna o ID do container criado

func (*ContainerBuilder) GetContainerLog

func (e *ContainerBuilder) GetContainerLog() (log []byte, err error)

GetContainerLog (english):

GetContainerLog (português): Retorna a saída padrão atual do container.

func (*ContainerBuilder) GetIPV4Address

func (e *ContainerBuilder) GetIPV4Address() (IP string)

GetIPV4Address (english):

GetIPV4Address (português): Retorna o IP de quando o container foi criado.

Nota: Caso o container seja desconectado ou conectado a uma outra rede após a criação, esta informação pode mudar

func (*ContainerBuilder) GetIdByContainerName

func (e *ContainerBuilder) GetIdByContainerName() (err error)

GetIdByContainerName (english):

GetIdByContainerName (português): Retorna o ID do container definido em SetContainerName()

func (*ContainerBuilder) GetImageID

func (e *ContainerBuilder) GetImageID() (ID string)

GetImageID (english):

GetImageID (português): Retorna o ID da imagem.

func (*ContainerBuilder) GetImageName

func (e *ContainerBuilder) GetImageName() (name string)

GetImageName (english):

GetImageName (português): Retorna o nome da imagem.

func (*ContainerBuilder) GetLastInspect

func (e *ContainerBuilder) GetLastInspect() (inspect iotmakerdocker.ContainerInspect)

GetLastInspect (english):

GetLastInspect (português): Retorna os dados do container baseado no último ciclo do ticker definido em SetInspectInterval()

Nota: a função GetChannelOnContainerInspect() retorna o canal disparado pelo ticker quando as informações estão
prontas para uso

func (*ContainerBuilder) GetLastLogs

func (e *ContainerBuilder) GetLastLogs() (logs string)

GetLastLogs (english):

GetLastLogs (português): Retorna a saída padrão do container baseado no último ciclo do ticker definido em SetInspectInterval()

Nota: a função GetChannelOnContainerInspect() retorna o canal disparado pelo ticker quando as informações estão
prontas para uso

func (*ContainerBuilder) GetNetworkGatewayIPV4

func (e *ContainerBuilder) GetNetworkGatewayIPV4() (IPV4 string)

GetNetworkGatewayIPV4 (english):

GetNetworkGatewayIPV4 (português): Retorna o gateway da rede para rede IPV4

func (*ContainerBuilder) GetNetworkGatewayIPV4ByNetworkName

func (e *ContainerBuilder) GetNetworkGatewayIPV4ByNetworkName(networkName string) (IPV4 string, err error)

GetNetworkGatewayIPV4ByNetworkName (english):

GetNetworkGatewayIPV4ByNetworkName (português): Caso o container esteja ligado em mais de uma rede, esta função devolve o gateway da rede escolhida.

Nota: a rede padrão do docker tem o nome "bridge"

func (*ContainerBuilder) GetNetworkIPV4

func (e *ContainerBuilder) GetNetworkIPV4() (IPV4 string)

func (*ContainerBuilder) GetNetworkIPV4ByNetworkName

func (e *ContainerBuilder) GetNetworkIPV4ByNetworkName(networkName string) (IPV4 string, err error)

func (*ContainerBuilder) GetNetworkInterface

func (e *ContainerBuilder) GetNetworkInterface() (network isolatedNetwork.ContainerBuilderNetworkInterface)

func (*ContainerBuilder) ImageBuildFromFolder

func (e *ContainerBuilder) ImageBuildFromFolder() (err error)

ImageBuildFromFolder (english):

ImageBuildFromFolder (português): transforma o conteúdo da pasta definida em SetBuildFolderPath() em uma imagem

Nota: A pasta deve conter um arquivo dockerfile, mas, como diferentes usos podem ter diferentes dockerfiles,
será dada a seguinte ordem na busca pelo arquivo: "Dockerfile-iotmaker", "Dockerfile", "dockerfile" na pasta raiz.
Se não houver encontrado, será feita uma busca recusiva por "Dockerfile" e "dockerfile"
Example
var err error

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// set a folder path to make a new image
container.SetBuildFolderPath("./test/server")
// container name container_delete_server_after_test
container.SetContainerName("container_delete_server_after_test")
// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("starting server at port 3000", 10*time.Second)
// change and open port 3000 to 3030
container.AddPortToOpen("3000")
// replace container folder /static to host folder ./test/static
err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	panic(err)
}

// inicialize container object
err = container.Init()
if err != nil {
	panic(err)
}

// builder new image from folder
err = container.ImageBuildFromFolder()
if err != nil {
	panic(err)
}

// build a new container from image
err = container.ContainerBuildFromImage()
if err != nil {
	panic(err)
}

// Server is ready for use o port 3000

// stop and delete container and image
GarbageCollector()

func (*ContainerBuilder) ImageBuildFromServer

func (e *ContainerBuilder) ImageBuildFromServer() (err error)

ImageBuildFromServer (english):

ImageBuildFromServer (português): Monta uma imagem docker a partir de um projeto contido em um repositório git.

Nota: O repositório pode ser definido pelos métodos SetGitCloneToBuild(), SetGitCloneToBuildWithPrivateSshKey(),
SetGitCloneToBuildWithPrivateToken() e SetGitCloneToBuildWithUserPassworh()

SetPrivateRepositoryAutoConfig() copia as credencias do git contidas em ~/.ssh/id_rsa e as configurações de
~/.gitconfig

func (*ContainerBuilder) ImageListExposedPorts

func (e *ContainerBuilder) ImageListExposedPorts() (portList []nat.Port, err error)

ImageListExposedPorts (english):

ImageListExposedPorts (português): Lista todas as portas definidas na imagem para serem expostas.

Nota: As portas expostas na criação do container pode ser definidas por SetOpenAllContainersPorts(),
AddPortToChange() e AddPortToOpen();
Por padrão, todas as portas ficam fechadas;
A função ImageListExposedPorts() retorna todas as portas definidas na imagem para serem expostas.
Example
var err error
var portList []nat.Port

// create a container
var container = ContainerBuilder{}
// set image name for docker pull
container.SetImageName("nats:latest")
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

err = container.ImagePull()
if err != nil {
	util.TraceToLog()
	panic(err)
}

portList, err = container.ImageListExposedPorts()
if err != nil {
	util.TraceToLog()
	panic(err)
}

var portsToPrint = make([]string, 0)

for _, p := range portList {
	portsToPrint = append(portsToPrint, fmt.Sprintf("port: %v/%v\n", p.Port(), p.Proto()))
}

sort.Strings(portsToPrint)

for _, print := range portsToPrint {
	fmt.Printf("%v", print)
}

err = container.ImageRemove()
if err != nil {
	util.TraceToLog()
	panic(err)
}
Output:

port: 4222/tcp
port: 6222/tcp
port: 8222/tcp

func (*ContainerBuilder) ImageListExposedVolumes

func (e *ContainerBuilder) ImageListExposedVolumes() (list []string, err error)
Example
var err error
var volumes []string

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

err = container.ImageBuildFromServer()
if err != nil {
	util.TraceToLog()
	panic(err)
}

volumes, err = container.ImageListExposedVolumes()
if err != nil {
	util.TraceToLog()
	panic(err)
}

fmt.Printf("%v", volumes[0])

GarbageCollector()
Output:

/static

func (*ContainerBuilder) ImagePull

func (e *ContainerBuilder) ImagePull() (err error)

ImagePull (english):

ImagePull (português): baixa a imagem a ser montada. (equivale ao comando docker pull)

Example
var err error

GarbageCollector()

// create a network [optional]
var netDocker = dockerNetwork.ContainerBuilderNetwork{}
err = netDocker.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// create a network named cache_delete_after_test, subnet 10.0.0.0/16 e gatway 10.0.0.1
err = netDocker.NetworkCreate("cache_delete_after_test", "10.0.0.0/16", "10.0.0.1")
if err != nil {
	util.TraceToLog()
	panic(err)
}

// create a container
var container = ContainerBuilder{}
// link container and network [optional] (next ip address is 10.0.0.2)
container.SetNetworkDocker(&netDocker)
// set image name for docker pull
container.SetImageName("nats:latest")
// set a container name
container.SetContainerName("container_delete_nats_after_test")
// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Listening for route connections on 0.0.0.0:6222", 10*time.Second)

// inialize the container object
err = container.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// image nats:latest pull command [optional]
err = container.ImagePull()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// container build and start from image nats:latest
// waits for the text "Listening for route connections on 0.0.0.0:6222" to appear  in the standard container output
// to proceed
err = container.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// container "container_delete_nats_after_test" running and ready for use on this code point on IP 10.0.0.2
// all nats ports are open
// you can use AddPortToOpen("4222"), to open only ports defineds inside code;
// you can use AddPortToChange("4222", "1111") to open only ports defineds inside code and change port 4222 to port
// 1111;
// you can use SetDoNotOpenContainersPorts() to not open containers ports

GarbageCollector()

// use this function to remove image, ONLY before container stoped and deleted
err = container.ImageRemoveByName("nats:latest")
if err != nil {
	util.TraceToLog()
	panic(err)
}

func (*ContainerBuilder) ImageRemove

func (e *ContainerBuilder) ImageRemove() (err error)

ImageRemove (english):

ImageRemove (português): remove a imagem se não houver containers usando a imagem (remova todos os containers antes do uso, mesmo os parados)

func (*ContainerBuilder) ImageRemoveByName

func (e *ContainerBuilder) ImageRemoveByName(name string) (err error)

ImageRemoveByName (english):

ImageRemoveByName (português): Remove uma imagem se não houver containers usando a imagem

name: nome completo da imagem

  Nota: pare e remova todos os containers usando a imagem antes de usar este comando

func (*ContainerBuilder) Init

func (e *ContainerBuilder) Init() (err error)

Init (english):

Init (português): Inicializa o objeto e deve ser chamado apenas depois de toas as configurações serem definidas

func (*ContainerBuilder) RemoveAllByNameContains

func (e *ContainerBuilder) RemoveAllByNameContains(value string) (err error)

RemoveAllByNameContains (english):

RemoveAllByNameContains (português): procuta por redes, volumes, container e imagens que contenham o termo definido em "value" no nome e tenta remover os mesmos

func (*ContainerBuilder) SetBuildFolderPath

func (e *ContainerBuilder) SetBuildFolderPath(value string)

SetBuildFolderPath (english):

SetBuildFolderPath (português): Define o caminho da pasta a ser transformada em imagem

value: caminho da pasta a ser transformada em imagem

  Nota: A pasta deve conter um arquivo dockerfile, mas, como diferentes usos podem ter diferentes dockerfiles,
  será dada a seguinte ordem na busca pelo arquivo: "Dockerfile-iotmaker", "Dockerfile", "dockerfile" na pasta raiz.
  Se não houver encontrado, será feita uma busca recusiva por "Dockerfile" e "dockerfile"

func (*ContainerBuilder) SetContainerName

func (e *ContainerBuilder) SetContainerName(value string)

SetContainerName (english):

SetContainerName (português): Define o nome do container

value: nome do container

func (*ContainerBuilder) SetEnvironmentVar

func (e *ContainerBuilder) SetEnvironmentVar(value []string)

SetEnvironmentVar (english):

SetEnvironmentVar (português): Define as variáveis de ambiente

value: array de string contendo um variável de ambiente por chave

func (*ContainerBuilder) SetGitCloneToBuild

func (e *ContainerBuilder) SetGitCloneToBuild(url string)

SetGitCloneToBuild (english):

SetGitCloneToBuild (português): Define o caminho de um repositório público para ser usado como base da imagem a ser montada.

url: Endereço do repositório contendo o projeto

  Nota: * Esta função deve ser usada com a função ImageBuildFromServer() e SetImageName() para baixar e gerar uma
        imagem a partir do conteúdo de um repositório git;
        * O repositório deve contar um arquivo Dockerfile e ele será procurado na seguinte ordem:
        './Dockerfile-iotmaker', './Dockerfile', './dockerfile', 'Dockerfile.*', 'dockerfile.*', '.*Dockerfile.*' e
        '.*dockerfile.*'

Nota: O repositório pode ser definido pelos métodos SetGitCloneToBuild(), SetGitCloneToBuildWithPrivateSshKey(),
SetGitCloneToBuildWithPrivateToken() e SetGitCloneToBuildWithUserPassworh()

SetPrivateRepositoryAutoConfig() copia as credencias do git contidas em ~/.ssh/id_rsa e as configurações de
~/.gitconfig

Caso o certificado ssh seja protegido com chave, ela pode ser definida com SetGitSshPassword()
Example
var err error

GarbageCollector()

var container = ContainerBuilder{}
// new image name delete:latest
container.SetImageName("delete:latest")
// container name container_delete_server_after_test
container.SetContainerName("container_delete_server_after_test")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
container.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")
// set a waits for the text to appear in the standard container output to proceed [optional]
container.SetWaitStringWithTimeout("Stating server on port 3000", 10*time.Second)
// change and open port 3000 to 3030
container.AddPortToChange("3000", "3030")
// replace container folder /static to host folder ./test/static
err = container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	panic(err)
}

// inicialize container object
err = container.Init()
if err != nil {
	panic(err)
}

// builder new image from git project
err = container.ImageBuildFromServer()
if err != nil {
	panic(err)
}

// build a new container from image
err = container.ContainerBuildFromImage()
if err != nil {
	panic(err)
}

// At this point, the container is ready for use on port 3030

// Stop and delete the container
GarbageCollector()

func (*ContainerBuilder) SetGitCloneToBuildWithPrivateSSHKey

func (e *ContainerBuilder) SetGitCloneToBuildWithPrivateSSHKey(url, privateSSHKeyPath, password string)

SetGitCloneToBuildWithPrivateSSHKey (english):

SetGitCloneToBuildWithPrivateSSHKey (português): Define o caminho de um repositório privado para ser usado como base da imagem a ser montada.

url: Endereço do repositório contendo o projeto
privateSSHKeyPath: este é o caminho da chave ssh privada compatível com a chave pública cadastrada no git
password: senha usada no momento que a chave ssh foi gerada

  Nota: * Password é o password usado na criação da chave e não password do repositório;
        o diretório ~/.ssh só é acessado pelo programa se o mesmo for inicializado com nível de acesso
        administrador;
        * Esta função deve ser usada com a função ImageBuildFromServer() e SetImageName() para baixar e gerar uma
        imagem a partir do conteúdo de um repositório git;
        * O repositório deve contar um arquivo Dockerfile e ele será procurado na seguinte ordem:
        './Dockerfile-iotmaker', './Dockerfile', './dockerfile', 'Dockerfile.*', 'dockerfile.*', '.*Dockerfile.*' e
        '.*dockerfile.*'

func (*ContainerBuilder) SetGitCloneToBuildWithPrivateToken

func (e *ContainerBuilder) SetGitCloneToBuildWithPrivateToken(url, privateToken string)

SetGitCloneToBuildWithPrivateToken (english):

SetGitCloneToBuildWithPrivateToken (português): Define o caminho de um repositório privado para ser usado como base da imagem a ser montada.

url: Endereço do repositório contendo o projeto
privateToken: Token gerado dentro do portal git

  Nota: * Esta função deve ser usada com a função ImageBuildFromServer() e SetImageName() para baixar e gerar uma
        imagem a partir do conteúdo de um repositório git;
        * O repositório deve contar um arquivo Dockerfile e ele será procurado na seguinte ordem:
        './Dockerfile-iotmaker', './Dockerfile', './dockerfile', 'Dockerfile.*', 'dockerfile.*', '.*Dockerfile.*' e
        '.*dockerfile.*'

func (*ContainerBuilder) SetGitCloneToBuildWithUserPassworh

func (e *ContainerBuilder) SetGitCloneToBuildWithUserPassworh(url, user, password string)

SetGitCloneToBuildWithUserPassworh (english):

SetGitCloneToBuildWithUserPassworh (português): Define o caminho de um repositório privado para ser usado como base da imagem a ser montada.

url: Endereço do repositório contendo o projeto
user: Usuário de acesso ao git
password: Senha de acesso ao git

  Nota: * Esta função deve ser usada com a função ImageBuildFromServer() e SetImageName() para baixar e gerar uma
        imagem a partir do conteúdo de um repositório git;
        * O repositório deve contar um arquivo Dockerfile e ele será procurado na seguinte ordem:
        './Dockerfile-iotmaker', './Dockerfile', './dockerfile', 'Dockerfile.*', 'dockerfile.*', '.*Dockerfile.*' e
        '.*dockerfile.*'

func (*ContainerBuilder) SetGitSshPassword

func (e *ContainerBuilder) SetGitSshPassword(password string)

SetGitSshPassword (english):

SetGitSshPassword (português): Define a senha da chave ssh para repositórios git privados.

Nota: O repositório pode ser definido pelos métodos SetGitCloneToBuild(), SetGitCloneToBuildWithPrivateSshKey(),
SetGitCloneToBuildWithPrivateToken() e SetGitCloneToBuildWithUserPassworh()

SetPrivateRepositoryAutoConfig() copia as credencias do git contidas em ~/.ssh/id_rsa e as configurações de
~/.gitconfig

Caso o certificado ssh seja protegido com chave, ela pode ser definida com SetGitSshPassword()

func (*ContainerBuilder) SetImageName

func (e *ContainerBuilder) SetImageName(value string)

SetImageName (english):

SetImageName (português): Define o nome da imagem a ser usada ou criada

value: noma da imagem a ser baixada ou criada

  Nota: o nome da imagem deve ter a tag de versão

func (*ContainerBuilder) SetInspectInterval

func (e *ContainerBuilder) SetInspectInterval(value time.Duration)

SetInspectInterval (english):

SetInspectInterval (português): Define o intervalo de monitoramento do container [opcional]

value: intervalo de tempo entre os eventos de inspeção do container

  Nota: Esta função tem um custo computacional elevado e deve ser usada com moderação.
  Os valores capturados são apresentados por GetLastInspect() e GetChannelOnContainerInspect()

func (*ContainerBuilder) SetNetworkDocker

SetNetworkDocker (english):

SetNetworkDocker (português): Define o ponteiro do gerenciador de rede docker

network: ponteiro para o objeto gerenciador de rede.

  Nota: compatível com o objeto dockerBuilderNetwork.ContainerBuilderNetwork{}
Example
var err error

var netDocker = dockerNetwork.ContainerBuilderNetwork{}
err = netDocker.Init()
if err != nil {
	panic(err)
}

// create a network named cache_delete_after_test, subnet 10.0.0.0/16 e gatway 10.0.0.1
err = netDocker.NetworkCreate("cache_delete_after_test", "10.0.0.0/16", "10.0.0.1")
if err != nil {
	panic(err)
}

// At this point in the code, the network has been created and is ready for use

var mongoDocker = &ContainerBuilder{}
// set a docker network
mongoDocker.SetNetworkDocker(&netDocker)
// set an image name
mongoDocker.SetImageName("mongo:latest")
// set a container name
mongoDocker.SetContainerName("container_delete_mongo_after_test")
// set a port to expose
mongoDocker.AddPortToOpen("27017")
// se a environment var list
mongoDocker.SetEnvironmentVar(
	[]string{
		"--host 0.0.0.0",
	},
)
// set a MongoDB data dir to ./test/data
err = mongoDocker.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/data", "/data")
if err != nil {
	panic(err)
}
// set a text indicating for container ready for use
mongoDocker.SetWaitStringWithTimeout(`"msg":"Waiting for connections","attr":{"port":27017`, 20*time.Second)

// inicialize the object before sets
err = mongoDocker.Init()
if err != nil {
	panic(err)
}

// build a container
err = mongoDocker.ContainerBuildFromImage()
if err != nil {
	panic(err)
}

// At this point, the MongoDB is ready for use on port 27017

// Stop and delete the container
GarbageCollector()

func (*ContainerBuilder) SetOpenAllContainersPorts

func (e *ContainerBuilder) SetOpenAllContainersPorts()

SetOpenAllContainersPorts (english):

SetOpenAllContainersPorts (português): Expõe automaticamente todas as portas listadas na imagem usada para gerar o container

Nota: As portas expostas na criação do container pode ser definidas por SetOpenAllContainersPorts(),
AddPortToChange() e AddPortToOpen();
Por padrão, todas as portas ficam fechadas;
A função ImageListExposedPorts() retorna todas as portas definidas na imagem para serem expostas.

func (*ContainerBuilder) SetPrivateRepositoryAutoConfig

func (e *ContainerBuilder) SetPrivateRepositoryAutoConfig() (err error)

SetPrivateRepositoryAutoConfig (english):

SetPrivateRepositoryAutoConfig (português): Copia a chave ssh ~/.ssh/id_rsa e o arquivo ~/.gitconfig para as variáveis SSH_ID_RSA_FILE e GITCONFIG_FILE.

Dentro do Dockerfile

func (*ContainerBuilder) SetWaitString

func (e *ContainerBuilder) SetWaitString(value string)

SetWaitString (english):

SetWaitString (português): Define um texto a ser procurado dentro da saída padrão do container e força a espera do mesmo para se considerar o container como pronto para uso

value: texto emitido na saída padrão informando por um evento esperado

func (*ContainerBuilder) SetWaitStringWithTimeout

func (e *ContainerBuilder) SetWaitStringWithTimeout(value string, timeout time.Duration)

func (*ContainerBuilder) WaitForTextInContainerLog

func (e *ContainerBuilder) WaitForTextInContainerLog(value string) (dockerLogs string, err error)

WaitForTextInContainerLog (english):

WaitForTextInContainerLog (português): Para a execução do objeto até o texto ser encontrado na saída padrão do container

value: texto indicativo de evento apresentado na saída padrão do container

func (*ContainerBuilder) WaitForTextInContainerLogWithTimeout

func (e *ContainerBuilder) WaitForTextInContainerLogWithTimeout(value string, timeout time.Duration) (dockerLogs string, err error)

type Overloading

type Overloading struct {
	// contains filtered or unexported fields
}

func (*Overloading) Init

func (e *Overloading) Init(listenPort string, invert bool) (err error)
Example
var err error

GarbageCollector()

var mongoDocker = &ContainerBuilder{}
mongoDocker.SetImageName("mongo:latest")
mongoDocker.SetContainerName("container_delete_mongo_after_test")
//mongoDocker.AddPortToChange("27017", "27016")
mongoDocker.AddPortToOpen("27017")
mongoDocker.SetEnvironmentVar(
	[]string{
		"--host 0.0.0.0",
	},
)
mongoDocker.SetWaitStringWithTimeout(`"msg":"Waiting for connections","attr":{"port":27017`, 20*time.Second)
err = mongoDocker.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

err = mongoDocker.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	panic(err)
}
return
var netDocker = dockerNetwork.ContainerBuilderNetwork{}
err = netDocker.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

err = netDocker.NetworkCreate("cache_delete_after_test", "10.0.0.0/16", "10.0.0.1")
if err != nil {
	util.TraceToLog()
	panic(err)
}

var serverContainer = &ContainerBuilder{}
// add container to network
serverContainer.SetNetworkDocker(&netDocker)
// new image name delete:latest
serverContainer.SetImageName("delete:latest")
// container name container_delete_server_after_test
serverContainer.SetContainerName("container_delete_server_after_test")
// git project to clone https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git
serverContainer.SetGitCloneToBuild("https://github.com/helmutkemper/iotmaker.docker.util.whaleAquarium.sample.git")

// see SetGitCloneToBuildWithUserPassworh(), SetGitCloneToBuildWithPrivateSshKey() and
// SetGitCloneToBuildWithPrivateToken()

// set a waits for the text to appear in the standard container output to proceed [optional]
serverContainer.SetWaitStringWithTimeout("Stating server on port 3000", 10*time.Second)
// change and open port 3000 to 3030
//serverContainer.SetDoNotOpenContainersPorts()
//serverContainer.AddPortToChange("3000", "3030")
serverContainer.AddPortToOpen("3000")
// replace container folder /static to host folder ./test/static
err = serverContainer.AddFiileOrFolderToLinkBetweenConputerHostAndContainer("./test/static", "/static")
if err != nil {
	log.Printf("container.AddFiileOrFolderToLinkBetweenConputerHostAndContainer().error: %v", err.Error())
	util.TraceToLog()
	panic(err)
}

// inicialize container object
err = serverContainer.Init()
if err != nil {
	util.TraceToLog()
	panic(err)
}

// builder new image from git project
err = serverContainer.ImageBuildFromServer()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ImageBuildFromServer().error: %v", err.Error())
	panic(err)
}

// container build from image delete:latest
err = serverContainer.ContainerBuildFromImage()
if err != nil {
	util.TraceToLog()
	log.Printf("container.ContainerBuildFromImage().error: %v", err.Error())
	panic(err)
}

log.Printf("ip address: %v", serverContainer.GetIPV4Address())
return
var overload = Overloading{}
overload.SetNetworkDocker(&netDocker)
overload.SetBuilderToOverload(serverContainer)
err = overload.Init("3000", false)
if err != nil {
	util.TraceToLog()
	log.Printf("error: %v", err.Error())
	panic(err)
}

func (*Overloading) SetBuilderToOverload

func (e *Overloading) SetBuilderToOverload(value *ContainerBuilder)

fixme: interface

func (*Overloading) SetNetworkDocker

func (e *Overloading) SetNetworkDocker(network isolatedNetwork.ContainerBuilderNetworkInterface)

SetNetworkDocker (english):

SetNetworkDocker (português): Define o ponteiro do gerenciador de rede docker

network: ponteiro para o objeto gerenciador de rede.

  Nota: compatível com o objeto dockerBuilderNetwork.ContainerBuilderNetwork{}

Source Files

Directories

Path Synopsis
test
server command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL