/
funcContainerBuildAndStartFromImage.go
66 lines (58 loc) · 1.36 KB
/
funcContainerBuildAndStartFromImage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package iotmakerdockerbuilder
import (
"github.com/helmutkemper/util"
"log"
)
// ContainerBuildAndStartFromImage
//
// English:
//
// Transforms an image downloaded by ImagePull() or created by ImageBuildFromFolder() into a container
// and start it.
//
// Output:
// err: Default object error from golang
//
// Português:
//
// Transforma uma imagem baixada por ImagePull() ou criada por ImageBuildFromFolder() em container e o
// inicializa.
//
// Saída:
// err: Objeto padrão de erro golang
func (e *ContainerBuilder) ContainerBuildAndStartFromImage() (err error) {
err = e.ContainerBuildWithoutStartingItFromImage()
if err != nil {
util.TraceToLog()
return
}
err = e.ContainerStartAfterBuild()
if err != nil {
util.TraceToLog()
return
}
if e.waitString != "" && e.waitStringTimeout == 0 {
_, err = e.dockerSys.ContainerLogsWaitText(e.containerID, e.waitString, log.Writer())
if err != nil {
util.TraceToLog()
return
}
} else if e.waitString != "" {
_, err = e.dockerSys.ContainerLogsWaitTextWithTimeout(e.containerID, e.waitString, e.waitStringTimeout, log.Writer())
if err != nil {
util.TraceToLog()
return
}
}
if e.network == nil {
e.IPV4Address, err = e.FindCurrentIPV4Address()
if err != nil {
util.TraceToLog()
return
}
}
if len(*e.onContainerReady) == 0 {
*e.onContainerReady <- true
}
return
}