mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-02-28 17:16:24 +00:00
44 lines
900 B
Go
44 lines
900 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/samalba/dockerclient"
|
||
|
"log"
|
||
|
"os"
|
||
|
"os/signal"
|
||
|
"syscall"
|
||
|
)
|
||
|
|
||
|
func statCallback(id string, stat *dockerclient.Stats, ec chan error, args ...interface{}) {
|
||
|
log.Println(stat)
|
||
|
}
|
||
|
|
||
|
func waitForInterrupt() {
|
||
|
sigChan := make(chan os.Signal, 1)
|
||
|
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT)
|
||
|
for _ = range sigChan {
|
||
|
os.Exit(0)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
docker, err := dockerclient.NewDockerClient(os.Getenv("DOCKER_HOST"), nil)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
containerConfig := &dockerclient.ContainerConfig{Image: "busybox", Cmd: []string{"sh"}}
|
||
|
containerId, err := docker.CreateContainer(containerConfig, "")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
// Start the container
|
||
|
err = docker.StartContainer(containerId, nil)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
docker.StartMonitorStats(containerId, statCallback, nil)
|
||
|
|
||
|
waitForInterrupt()
|
||
|
}
|