Docker API Version

Aperta
#7,253 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
64/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
docker

Direzione di ricerca

Inizia dalla riga del Dockerfile che copia dist/${TARGETPLATFORM}/docker in /usr/local/bin/docker, poi esamina come viene prodotto quel binario incluso. Esegui docker run --rm nextflow/nextflow:25.10.6 docker version per confermare il client attuale e usa il comando con il socket montato per verificare la compatibilità. Il lavoro è completato quando l’immagine include un client Docker che supporta la versione API 1.40 o successiva.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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. 

Lingua principale
Groovy
Stelle
3.5k
Fork
823
Merge medio
1g 22h
PR unite (30g)
137

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nextflow-io/nextflow

Tutte le issue di nextflow-io/nextflow

Issue simili

Altre issue su Build System

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.