Docker API Version

オープン
#7,253 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
64/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
docker

調査の方向性

dist/${TARGETPLATFORM}/docker を /usr/local/bin/docker にコピーする Dockerfile の行から始め、次にその同梱バイナリがどのように生成されるかを調べます。現在のクライアントを確認するために docker run --rm nextflow/nextflow:25.10.6 docker version を実行し、マウントしたソケットを使うコマンドで互換性を検証します。イメージに API バージョン 1.40 以降をサポートする Docker クライアントが含まれていれば完了です。

索引モデルが issue の本文から書いたものです。

説明

software/docker

Bug report

Expected behavior and actual behavior

Expected behavior:

The nextflow/nextflow:25.10.6 Docker image should include a Docker client that is compatible with currently supported Docker daemon API versions. At minimum, the bundled Docker client should support Docker API version 1.40 or newer.

Actual behavior:

The nextflow/nextflow:25.10.6 image includes an older Docker client:

Client:
 Version:      17.09.0-ce
 API version:  1.32

When this image is used and attempts to communicate with a up to date Docker daemon through /var/run/docker.sock, Docker commands fail with:

docker: Error response from daemon: client version 1.32 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version.
See 'docker run --help'.

This prevents workflows using the Nextflow Docker image from running Docker-based pipeline steps on hosts with newer Docker daemon versions.

Steps to reproduce the problem

Run the following command:

docker run --rm nextflow/nextflow:25.10.6 docker version

On my system, this shows that the Docker client bundled inside the Nextflow image is version 17.09.0-ce with API version 1.32.

To reproduce the failure against a up to date host Docker daemon, run the image with the Docker socket mounted:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nextflow/nextflow:25.10.6 docker run hello-world

On systems where the Docker daemon requires API version 1.40 or newer, this fails because the Docker client inside the Nextflow image only supports API version 1.32.

Program output

Output showing the bundled Docker client version:

$ docker run --rm nextflow/nextflow:25.10.6 docker version
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Client:
 Version:      17.09.0-ce
 API version:  1.32

Output from the failing execution:

docker: Error response from daemon: client version 1.32 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version.
See 'docker run --help'.

Host/runner Docker version reports an API version:

API version:       1.54
Environment
  • Nextflow version: 25.10.6
  • Operating system: MacOS
  • Container runtime: Docker
  • Host Docker API version: 1.54
  • Bundled Docker client inside nextflow/nextflow:25.10.6: 17.09.0-ce, API version 1.32
Additional context

The issue appears to be caused by the Docker client bundled inside the nextflow/nextflow image. The Dockerfile copies a Docker binary from:

COPY dist/${TARGETPLATFORM}/docker /usr/local/bin/docker

Request: please update the bundled Docker client in the nextflow/nextflow image so that it supports Docker API version 1.40 or newer. A more recent Docker CLI would allow the image to work with current Docker daemons.

Additionally pushing an arm image would be nice as well. 

主要言語
Groovy
スター
3.5k
フォーク
823
平均マージ
1日 22時間
マージ済み PR(30日)
137

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextflow-io/nextflow のほかの issue

nextflow-io/nextflow の issue をすべて見る

似ている issue

Build System の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。