Red Hat Training

A Red Hat training course is available for RHEL 8

4.7. Obtener el código fuente de la imagen del contenedor UBI

El código fuente está disponible para todas las imágenes basadas en Red Hat UBI en forma de contenedores descargables. Antes de continuar, tenga en cuenta los contenedores de código fuente de Red Hat:

  • Las imágenes de contenedor de origen no se pueden ejecutar, a pesar de estar empaquetadas como contenedores. Para instalar las imágenes de contenedor de origen de Red Hat en su sistema, utilice el comando skopeo command, en lugar de utilizar podman pull.

    • Utilice el comando skopeo copy para copiar una imagen de contenedor de origen en un directorio de su sistema local.
    • Utilice el comando skopeo inspect para inspeccionar la imagen del contenedor de origen.
  • Para más detalles sobre el comando skopeo, vea la Sección 1.5. Uso de skopeo para trabajar con registros de contenedores.
  • Las imágenes del contenedor fuente se nombran en base a los contenedores binarios que representan. Por ejemplo, para un contenedor estándar RHEL UBI 8 en particular registry.access.redhat.com/ubi8:8.1-397 anexa -source para obtener la imagen del contenedor fuente (registry.access.redhat.com/ubi8:8.1-397-source).
  • Una vez que la imagen del contenedor de origen se ha copiado en un directorio local, puede utilizar una combinación de comandos tar, gzip, y rpm para trabajar con ese contenido.
  • Pueden pasar varias horas desde que se publica una imagen de contenedor hasta que su contenedor fuente asociado esté disponible.

Procedimiento

  1. Utilice el comando skopeo copy para copiar la imagen del contenedor de origen en un directorio local:

    $ skopeo copy \
    docker://registry.access.redhat.com/ubi8:8.1-397-source \
    dir:$HOME/TEST
    ...
    Copying blob 477bc8106765 done
    Copying blob c438818481d3 done
    Copying blob 26fe858c966c done
    Copying blob ba4b5f020b99 done
    Copying blob f7d970ccd456 done
    Copying blob ade06f94b556 done
    Copying blob cc56c782b513 done
    Copying blob dcf9396fdada done
    Copying blob feb6d2ae2524 done
    Copying config dd4cd669a4 done
    Writing manifest to image destination
    Storing signatures
  2. Utilice el comando skopeo inspect para inspeccionar la imagen del contenedor de origen:

    $ skopeo inspect dir:$HOME/TEST
    {
        "Digest": "sha256:7ab721ef3305271bbb629a6db065c59bbeb87bc53e7cbf88e2953a1217ba7322",
        "RepoTags": [],
        "Created": "2020-02-11T12:14:18.612461174Z",
        "DockerVersion": "",
        "Labels": null,
        "Architecture": "amd64",
        "Os": "linux",
        "Layers": [
            "sha256:1ae73d938ab9f11718d0f6a4148eb07d38ac1c0a70b1d03e751de8bf3c2c87fa",
            "sha256:9fe966885cb8712c47efe5ecc2eaa0797a0d5ffb8b119c4bd4b400cc9e255421",
            "sha256:61b2527a4b836a4efbb82dfd449c0556c0f769570a6c02e112f88f8bbcd90166",
            ...
            "sha256:cc56c782b513e2bdd2cc2af77b69e13df4ab624ddb856c4d086206b46b9b9e5f",
            "sha256:dcf9396fdada4e6c1ce667b306b7f08a83c9e6b39d0955c481b8ea5b2a465b32",
            "sha256:feb6d2ae252402ea6a6fca8a158a7d32c7e4572db0e6e5a5eab15d4e0777951e"
        ],
        "Env": null
    }
  3. Para desencajar todo el contenido, escriba:

    $ cd $HOME/TEST
    $ for f in $(ls); do tar xvf $f; done
  4. Para comprobar los resultados, escriba:

    $ find blobs/ rpm_dir/
    blobs/
    blobs/sha256
    blobs/sha256/10914f1fff060ce31388f5ab963871870535aaaa551629f5ad182384d60fdf82
    rpm_dir/
    rpm_dir/gzip-1.9-4.el8.src.rpm
  5. Empezar a examinar y utilizar el contenido.