Class: DockerSwarm::Image
- Includes:
- Concerns::Deletable
- Defined in:
- lib/docker_swarm/models/image.rb
Overview
Represents a Docker Image
No incluye Creatable: el "create" del Docker API sobre imágenes es un PULL
(stream de progreso), no la construcción de un recurso CRUD. Se expone como
.pull con contrato propio.
Constant Summary collapse
- DIGEST_STATUS =
Docker emite el digest del pull en un frame de status "Digest: sha256:..." (verificado empíricamente contra Docker 29.5.3; el stream de pull NO trae campo
aux). /\bDigest:\s*(sha256:[0-9a-f]+)/
Class Method Summary collapse
-
.pull(image_reference, registry_auth: nil) ⇒ Hash
Pull explícito de una imagen (POST /images/create).
Methods included from Concerns::Deletable
Methods inherited from Base
all, #as_json, #assign_attributes, #attributes, defined_attributes, find, #id, #initialize, #method_missing, #payload_for_docker, #persisted?, #reload, resource_name, #respond_to_missing?, root_key, routes, #serializable_hash, where
Methods included from Concerns::Inspectable
Constructor Details
This class inherits a constructor from DockerSwarm::Base
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class DockerSwarm::Base
Class Method Details
.pull(image_reference, registry_auth: nil) ⇒ Hash
Pull explícito de una imagen (POST /images/create).
Operación SÍNCRONA: consume el stream NDJSON de progreso hasta EOF, eleva
error tipado ante un frame error/errorDetail (que Docker manda CON HTTP 200),
y solo tras terminación limpia devuelve un resultado explícito construido desde
el stream — sin un find posterior que reintroduciría el problema referencia-vs-ID.
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/docker_swarm/models/image.rb', line 29 def pull(image_reference, registry_auth: nil) headers, = RegistryAuth.resolve(registry_auth: registry_auth) body = Api.request( action: routes[:pull], query_params: { fromImage: image_reference }, headers: headers ) frames = parse_progress_stream(body) raise_on_stream_error!(frames) pull_result(image_reference, frames) end |