mirror of
https://code.forgejo.org/forgejo/runner.git
synced 2024-12-04 15:50:37 +03:00
552dbcdda9
Add copyright header Co-authored-by: sillyguodong <gedong_1994@163.com> Reviewed-on: https://gitea.com/gitea/act_runner/pulls/29 Reviewed-by: Jason Song <i@wolfogre.com> Reviewed-by: Zettat123 <zettat123@noreply.gitea.io> Co-authored-by: sillyguodong <sillyguodong@noreply.gitea.io> Co-committed-by: sillyguodong <sillyguodong@noreply.gitea.io>
40 lines
676 B
Go
40 lines
676 B
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package engine
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/docker/docker/client"
|
|
)
|
|
|
|
type Docker struct {
|
|
client client.APIClient
|
|
hidePull bool
|
|
}
|
|
|
|
func New(opts ...Option) (*Docker, error) {
|
|
cli, err := client.NewClientWithOpts(client.FromEnv)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
srv := &Docker{
|
|
client: cli,
|
|
}
|
|
|
|
// Loop through each option
|
|
for _, opt := range opts {
|
|
// Call the option giving the instantiated
|
|
opt.Apply(srv)
|
|
}
|
|
|
|
return srv, nil
|
|
}
|
|
|
|
// Ping pings the Docker daemon.
|
|
func (e *Docker) Ping(ctx context.Context) error {
|
|
_, err := e.client.Ping(ctx)
|
|
return err
|
|
}
|