57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
|
package pods
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"log"
|
||
|
|
||
|
"github.com/containers/podman/v4/pkg/bindings"
|
||
|
"github.com/containers/podman/v4/pkg/bindings/containers"
|
||
|
"github.com/containers/podman/v4/pkg/bindings/images"
|
||
|
)
|
||
|
|
||
|
var Socket context.Context
|
||
|
|
||
|
func socketConnection() context.Context {
|
||
|
uri := "unix:///run/podman/podman.sock"
|
||
|
conn, err := bindings.NewConnection(context.Background(), uri)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
return conn
|
||
|
}
|
||
|
|
||
|
func TestPodman() {
|
||
|
_ = socketConnection()
|
||
|
}
|
||
|
|
||
|
func ConnectSocket() {
|
||
|
Socket = socketConnection()
|
||
|
}
|
||
|
|
||
|
func PullImage() {
|
||
|
image := "docker.io/linuxserver/webtop"
|
||
|
conn := Socket
|
||
|
_, err := images.Pull(conn, image, nil)
|
||
|
if err != nil {
|
||
|
log.Println(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func Cleanup() {
|
||
|
containerList, err := containers.List(Socket, nil)
|
||
|
if err != nil {
|
||
|
log.Println(err)
|
||
|
}
|
||
|
for _, container := range containerList {
|
||
|
err = containers.Kill(Socket, container.ID, nil)
|
||
|
if err != nil {
|
||
|
log.Println(err)
|
||
|
}
|
||
|
_, err := containers.Remove(Socket, container.ID, nil)
|
||
|
if err != nil {
|
||
|
log.Println(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|