forgejo-runner

git clone git://git.lin.moe/forgejo-runner.git

 1// Copyright 2023 The Gitea Authors. All rights reserved.
 2// SPDX-License-Identifier: MIT
 3
 4package envcheck
 5
 6import (
 7	"context"
 8	"fmt"
 9
10	"github.com/docker/docker/client"
11)
12
13func CheckIfDockerRunning(ctx context.Context, configDockerHost string) error {
14	opts := []client.Opt{
15		client.FromEnv,
16	}
17
18	if configDockerHost != "" {
19		opts = append(opts, client.WithHost(configDockerHost))
20	}
21
22	cli, err := client.NewClientWithOpts(opts...)
23	if err != nil {
24		return err
25	}
26	defer cli.Close()
27
28	_, err = cli.Ping(ctx)
29	if err != nil {
30		return fmt.Errorf("cannot ping the docker daemon. is it running? %w", err)
31	}
32
33	return nil
34}