IBM z/OS imagen de la plataforma del contenedor (solo z/OS )

La imagen del contenedor para IBM® SDK, Java™ Technology Edition, Version 8 está disponible en los registros de contenedores IBM. Puede extraer la imagen del contenedor IBM Java 8 z/OS® y verificar la imagen utilizando el hash criptográfico. Las imágenes están firmadas y puedes verificar la firma.

Ejecución de la imagen del contenedor Java 8 z/OS

Para ejecutar la imagen del contenedor Java 8 z/OS, debe tener configurado lo siguiente:

La imagen del contenedor IBM Java 8 z/OS está alojada en IBM Cloud® Container Registry bajo el espacio de nombres icr.io/zoscp/ibmjava .

Nota: Para obtener la imagen del contenedor Java 8, abra un caso a través de https://www.ibm.com/mysupport/ con " z/OS Container Platform" (PID: 5655-MC3 ) como opción de producto. Sustituya < key> por el valor de clave de titularidad que se le proporciona.
podman login -u iamapikey -p <key> icr.io
Puede extraer la imagen del contenedor para z/OS desde IBM Cloud Container Registry utilizando el siguiente comando:
podman pull icr.io/zoscp/ibmjava:8
Nota: La imagen requiere acceso de LECTURA a BPX.FILEATTR.APF. Se recomienda utilizar un ID de administrador de imagen con los permisos correctos para extraer las imágenes Java en /var/lib/podman/storage para otros usuarios de Podman para IBM z/OS (Podman). Para más información, consulte https://www.ibm.com/docs/en/zoscp/1.1.0?topic=platform-pushing-pulling-from-container-registry.

A continuación, puede verificar la firma de la imagen IBM Java z/OS como se explica en la sección siguiente.

Verificación de la firma de la imagen del contenedor IBM Java z/OS

Para verificar la firma de la imagen del contenedor, debe tener configurado lo siguiente:
  • Un entorno Linux®
  • gpg (instalar a través de paquetes de distribución de Linux )
  • Skopeo (instalar a través de los paquetes de la distribución Linux )
  1. La clave pública debe existir en la máquina Linux que se utiliza para verificar la imagen firmada del contenedor z/OS. Para crear la clave pública, copie el bloque de texto siguiente exactamente como se muestra en un editor de texto y guárdelo como ibm-java-public-gpgkey.gpg.
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQINBGQbR9wBEADR//wuh48qCwcrHnGrURseqEG7binLYxb5G4fpOQd9tH/7dLIC
    iU7HyoFbMmGiPS1BP7sJ+gn8Kb1dU5IM9ZpBAO4LlMLCm7g2qyc+bkVqQKYezTBa
    fvpgDJhZ+e7b4P1vYkx1Ex9XpDd27S/o4aULGnmPjQ9SMtT3qlZf2b59clN9x30Y
    VXM2qoRRrpFAkhkoEYQIboY0644TatrVt5CNAQiECdZBn/c0z5op0b42JWTeXvAl
    D/FEOWhilSyjSeY7c8ANvP9q3Ur0k18wBCPt47vhXWf5/h9gbBxNtv0p+vKVNVKQ
    8CJdPHmylWdtHyWQsNkxFwGZ4EUzhP6YxxV3JQwy5eNnHB8Mt1Xb8LGhqbRdxSBE
    0dlHeQIzzAknex6mhAtKyUxJ/+1mxcU1w+kWiYSBrWw71eIEEKhIWGszqW9JND3F
    PJ0tNluTlkMJSlboK457/8rKB/NY5qgqDLTaxF6ZSjZUI7rgb1FcGEfV0Te3l0cO
    EdUdjg4fM2DXreVZd54JBcp2bEUdcQOmolUIo4wFTNjQawF6ApPmb7qzq5SV7EZj
    Cup4Jg4rE/SJhtOVUM4BIYkQ2SLOo4dIqAdFwOrHogXVm1neUJgMJ5US4tply18C
    RJCt9VbGTmiFzQkxMgAKXhi9QFuvET1Xc5GUCzkOgoXSoH/IvdeUl8eUJwARAQAB
    tDJJQk0gU2VtZXJ1IFJ1bnRpbWVzIFNpZ25pbmcgS2V5IDxwc2lydEB1cy5pYm0u
    Y29tPokCOgQTAQgAJAUCZBtH3AIbDwULCQgHAgYVCgkICwIEFgIDAQIeAQUJAAAA
    AAAKCRAMOZfZio1FgmNYEACjElnUd7E7n71AYoNTD27+S7Vl8YTyzGkVUVeb1c+3
    L3ASZ+kadEMKLepEYsCjGVqQPNXoeosg2YQ4ziY9IlGj5fvoFMuIqx6qisuL9xjM
    HaL3xI9aBCX9C/GtZd8DvvvcmglDb8tbOyLAq6tnkhAP1EEaH9cw2jY8V3zH7k99
    xqFso+g8GwaEYA7OGyjlvC2uy4wExo1MRodtv+0cxUmKZWoFqu9fNH7a3C9VPBtr
    VX5rRWoRJrcjI0Q6OxqximKs7P9H2S9kZtL7Zm4kxh/ZrSWPXlbC8/brs8TDdiga
    oFIDmmlK0rCWpsupna69DqS5aBNEO9WOYH8cAG3aw1MsHV0CSLAYZ9Iez7fb5uYx
    FClg5mNYj3vWmYRsiLCyaNrhJapCJyPWRCx6U5592yDkCHM9z0WJbGIweEZtfXXB
    KCdGW/LWweHYI0xs3BlVOfkg98RAxzMxr3ut7oAa/J0BsqbyV+VMm+jM/Tm/nReG
    JTucOa/s+z4MFyP5cQgJH3JUyrhV73vlUKqEqQaoWUTQjVM4Pp42Ew67lFlafoGZ
    i7HB1kG+Tq/Od3vNugSM+SzmC+oxcEbbPxEJt2IU25e4ncsiJSIIb51ZAsysE2Ob
    YL0Ace+djFYlq9wVG39w9tlgHn094GOsf60X6urdIL6cK/haHGmLyiOBPDhZ9wyd
    NA==
    =brr/
    -----END PGP PUBLIC KEY BLOCK-----
  2. Importe la clave pública en un sistema Linux independiente para verificar la firma de la imagen del contenedor:
    gpg --import ibm-java-public-gpgkey.gpg
  3. Calcule la huella digital con el mandato siguiente:
    fingerprint=$(gpg --fingerprint --with-colons | grep fpr | tr -d 'fpr:')

    Este mandato almacena la huella digital de la clave en una variable de entorno fingerprint, que el mandato utiliza para verificar la firma. Cuando salga de la sesión de shell, se suprimirá la variable. Puede establecerlo volviendo a ejecutar el comando durante el siguiente inicio de sesión.

  4. Crea un directorio para la imagen y utiliza Skopeo para llevarla al almacenamiento local:
    mkdir images
    skopeo copy docker://icr.io/zoscp/ibmjava:8 dir:./images

    Puede autenticarse primero y realizar una copia de skopeo o utilizar directamente --src-cred id:key para extraer la imagen de docker.

    El mandato skopeo copy descarga la imagen como un conjunto de archivos y los coloca en el directorio de imágenes (u otro directorio que elija).
    • Un archivo de manifiesto denominado images/manifest.json
    • Un archivo de firmas denominado images/signature-1

    Haga referencia a ambos archivos en el paso siguiente (en el mandato para verificar la firma).

  5. Verifique la firma:
    skopeo standalone-verify ./images/manifest.json icr.io/zoscp/ibmjava:8 ${fingerprint} ./images/signature-1
    Obtendrá una confirmación sobre la verificación correcta de la firma similar al siguiente mensaje:
    Signature verified with <FINGERPRINT> , digest sha256:0000000000000000000000000000000000000000000000000000000000000000 
Después de extraer la imagen, la imagen estará disponible en el servidor. Puede comprobar los detalles utilizando el mandato siguiente:
$ podman images
Los detalles incluyen el espacio de nombres del repositorio desde donde se ha extraído la imagen y los detalles de la imagen extraída específica:
REPOSITORY           TAG        IMAGE ID      CREATED      SIZE   
      icr.io/zoscp/ibmjava     8       8ef69ad2a6bc   11 days ago   644 MB

Limitaciones y métodos alternativos conocidos

El uso de la imagen del contenedor z/OS tiene las siguientes limitaciones y requiere soluciones para solucionarlas:

  • Cuando se ejecuta en una instancia de z/OS Container Platform, la API de java.nio.File.getFileStore() puede emitir una excepción java.io.IOException: Device not found al consultar un archivo que está alojado en un sistema de archivos de montaje de enlace. Una posible solución temporal es migrar los archivos a un sistema de archivos tmpfs.
  • _BPXK_AUTOCVT=ON se establece en las imágenes de contenedor Java y base de z/OS . Este valor ON puede introducir distintos comportamientos de manejo de codificación para las API de java/nio . Para evitar un comportamiento de manejo de codificación diferente, establezca _BPKX_AUTOCVT=OFF para que coincida con el valor predeterminado en entornos z/OS no contenerizados.