Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
24 lines
606 B
Go
24 lines
606 B
Go
package docker
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
|
|
"golang.org/x/sync/singleflight"
|
|
)
|
|
|
|
var flight singleflight.Group
|
|
|
|
func Installed() error {
|
|
if _, err := exec.LookPath("docker"); err != nil {
|
|
return fmt.Errorf("docker not found: %w", err)
|
|
}
|
|
// Verify the Docker daemon is actually running and accessible.
|
|
// Without this check, tests will try Docker, fail on docker pull,
|
|
// and t.Fatal instead of falling back to native database support.
|
|
if out, err := exec.Command("docker", "info").CombinedOutput(); err != nil {
|
|
return fmt.Errorf("docker daemon not available: %w\n%s", err, out)
|
|
}
|
|
return nil
|
|
}
|