Migrate go-docker to docker/docker (#363)

closes #325
This commit is contained in:
Anbraten
2021-09-26 14:43:14 +02:00
committed by GitHub
parent 5a05a7fe6b
commit 07d793f727
402 changed files with 15136 additions and 6735 deletions

View File

@@ -5,23 +5,23 @@ import (
"io"
"os"
"github.com/woodpecker-ci/woodpecker/pipeline/backend"
"docker.io/go-docker"
"docker.io/go-docker/api/types"
"docker.io/go-docker/api/types/network"
"docker.io/go-docker/api/types/volume"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/network"
"github.com/docker/docker/api/types/volume"
"github.com/docker/docker/client"
"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/woodpecker-ci/woodpecker/pipeline/backend"
)
type engine struct {
client docker.APIClient
client client.APIClient
}
// New returns a new Docker Engine using the given client.
func New(cli docker.APIClient) backend.Engine {
func New(cli client.APIClient) backend.Engine {
return &engine{
client: cli,
}
@@ -30,7 +30,7 @@ func New(cli docker.APIClient) backend.Engine {
// NewEnv returns a new Docker Engine using the client connection
// environment variables.
func NewEnv() (backend.Engine, error) {
cli, err := docker.NewEnvClient()
cli, err := client.NewEnvClient()
if err != nil {
return nil, err
}
@@ -39,7 +39,7 @@ func NewEnv() (backend.Engine, error) {
func (e *engine) Setup(_ context.Context, conf *backend.Config) error {
for _, vol := range conf.Volumes {
_, err := e.client.VolumeCreate(noContext, volume.VolumesCreateBody{
_, err := e.client.VolumeCreate(noContext, volume.VolumeCreateBody{
Name: vol.Name,
Driver: vol.Driver,
DriverOpts: vol.DriverOpts,
@@ -88,8 +88,8 @@ func (e *engine) Exec(ctx context.Context, proc *backend.Step) error {
}
}
_, err := e.client.ContainerCreate(ctx, config, hostConfig, nil, proc.Name)
if docker.IsErrNotFound(err) {
_, err := e.client.ContainerCreate(ctx, config, hostConfig, nil, nil, proc.Name)
if client.IsErrNotFound(err) {
// automatically pull and try to re-create the image if the
// failure is caused because the image does not exist.
responseBody, perr := e.client.ImagePull(ctx, config.Image, pullopts)
@@ -100,7 +100,7 @@ func (e *engine) Exec(ctx context.Context, proc *backend.Step) error {
fd, isTerminal := term.GetFdInfo(os.Stdout)
jsonmessage.DisplayJSONMessagesStream(responseBody, os.Stdout, fd, isTerminal, nil)
_, err = e.client.ContainerCreate(ctx, config, hostConfig, nil, proc.Name)
_, err = e.client.ContainerCreate(ctx, config, hostConfig, nil, nil, proc.Name)
}
if err != nil {
return err