Как использовать конечную точку TaskLogs API docker go-lang? - PullRequest
0 голосов
/ 02 октября 2018

Мой актуальный вопрос: как получить конкретную версию go-lang docker client?Последняя версия, которую я могу найти, v17.03.2-ce, которая старше года.Я хочу использовать Docker 1.37, который имеет TaskLogs.Но не смог найти ни одного с этой конкретной версией.Если я выберу основную ветку, это даст мне v1.39, но мой установленный клиентский API-интерфейс докера v1.38, который выдает ошибку «Ответ от демона: клиентская версия 1.39 слишком нова. Максимальная поддерживаемая версия API - 1.38».

Зачем мне нужен v1.37?Я использовал v1.13.1, который работал нормально.Теперь мне нужно реализовать граббер TaskLogs, а это не доступно в v1.13.1.

1 Ответ

0 голосов
/ 03 октября 2018

решено

Это было действительно просто:

В Gopkg.toml добавьте:

[[constraint]]
  name = "github.com/docker/docker"
  branch = "master"

[[override]]
  name = "github.com/docker/distribution"
  branch = "master"

Для использования любой версии создайте клиент сконкретная версия:

import (
    dockerClient "github.com/docker/docker/client"
    dockerTypes "github.com/docker/docker/api/types"
    )
var dockerClientInst *dockerClient.Client
dockerClient.NewClientWithOpts(dockerClient.WithVersion("1.37"))
responseBody, err := dockerClientInst.TaskLogs(ctx, taskID, dockerTypes.ContainerLogsOptions{})

Вот и все.

...