Créer une image php avec php-sodium sur PLMshift

Les applications PHP récentes nécessitent une extension php spécifique sodium. Cette extension n’est pas disponible dans les images php de base (ubi8/php et ubi9/php). Il faut pour cela une ressource BuildConfig spécifique comme par exemple :

kind: BuildConfig
apiVersion: build.openshift.io/v1
metadata:
  name: php-sodium
spec:
  output:
    to:
      kind: ImageStreamTag
      name: 'php-sodium:latest'
  resources:
    limits:
      cpu: '1'
      memory: 1Gi
    requests:
      cpu: '1'
      memory: 1Gi
  strategy:
    type: Docker
    dockerStrategy:
      from:
        kind: ImageStreamTag
        namespace: openshift
        name: 'php:8.0-ubi9'
  source:
    type: Dockerfile
    dockerfile: >
      FROM registry.access.redhat.com/ubi9/php-80:latest

      USER root

      RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
          && dnf install -y nc php-cli libsodium \
          && dnf install -y php-pear php-devel libsodium-devel make \
          && cd /tmp \
          && wget https://pecl.php.net/get/libsodium-2.0.23.tgz \
          && tar zxf libsodium-2.0.23.tgz \
          && cd libsodium-2.0.23 \
          && phpize \
          && ./configure \
          && make; make install \
          && dnf remove -y php-pear php-devel libsodium-devel make \
          && echo 'extension=sodium.so' > /etc/php.d/20-sodium.ini \
          && php -i | grep sodium \
          && dnf clean all && cd && rm -rf /tmp/libsodium-2.0.23* /tmp/package.xml
      COPY . /tmp/src/ 

      RUN chown -R 1001:0 /tmp/src 

      USER 1001 

      RUN /usr/libexec/s2i/assemble

      CMD ["/usr/libexec/s2i/run"]
  runPolicy: Serial

Vous pouvez faire la même chose avec php 81