コアシステムはGolangで構築されており、APIサービス、ウェブサービスなどの開発に使用されます。
Docker は、テストを実行するための Docker コンテナの開始および停止をサポートしています。
container struct
// Container tracks information about the docker container started for tests.
type Container struct {
ID string
Host string // IP:Port
}
Go テンプレートを使用した Docker の「フォーマットコマンドとログ出力」で Docker コンテナの IP ポートを抽出する doc
tmpl := fmt.Sprintf("[{{range $k,$v := (index .NetworkSettings.Ports \"%s/tcp\")}}{{json $v}}{{end}}]", port)
cmd := exec.Command("docker", "inspect", "-f", tmpl, id)
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
// handle err
}
structure