Red Hat Training

A Red Hat training course is available for RHEL 8

4.7. Obtendo o código fonte da imagem do contêiner UBI

O código fonte está disponível para todas as imagens baseadas no Red Hat UBI na forma de recipientes para download. Antes de continuar, esteja atento aos recipientes-fonte da Red Hat:

  • As imagens dos recipientes de origem não podem ser executadas, apesar de serem embaladas como recipientes. Para instalar imagens de recipientes-fonte da Red Hat em seu sistema, use o comando skopeo command, ao invés de usar o comando podman pull.

    • Use o comando skopeo copy para copiar uma imagem do recipiente de origem para um diretório em seu sistema local.
    • Use o comando skopeo inspect para inspecionar a imagem do recipiente de origem.
  • Para obter mais detalhes sobre o comando skopeo, consulte a Seção 1.5. Usando o skopeo para trabalhar com registros de contêineres.
  • As imagens dos recipientes de origem são nomeadas com base nos recipientes binários que eles representam. Por exemplo, para um recipiente RHEL UBI 8 padrão em particular registry.access.redhat.com/ubi8:8.1-397 anexar -source para obter a imagem do recipiente de origem (registry.access.redhat.com/ubi8:8.1-397-source).
  • Uma vez copiada uma imagem do recipiente de origem para um diretório local, você pode usar uma combinação dos comandos tar, gzip, e rpm para trabalhar com esse conteúdo.
  • Pode levar várias horas após o lançamento de uma imagem de contêiner para que o contêiner de origem associado esteja disponível.

Procedimento

  1. Use o comando skopeo copy para copiar a imagem do recipiente de origem para um diretório 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. Use o comando skopeo inspect para inspecionar a imagem do recipiente de origem:

    $ 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 desarmar todo o conteúdo, digite:

    $ cd $HOME/TEST
    $ for f in $(ls); do tar xvf $f; done
  4. Para verificar os resultados, digite:

    $ find blobs/ rpm_dir/
    blobs/
    blobs/sha256
    blobs/sha256/10914f1fff060ce31388f5ab963871870535aaaa551629f5ad182384d60fdf82
    rpm_dir/
    rpm_dir/gzip-1.9-4.el8.src.rpm
  5. Comece a examinar e utilizar o conteúdo.