Search code examples
phpsoapdockerfilephp-extension

PHP soap extension dont work with php 8 alpine with Dockerfile


I try to run composer install, but i dont have soap extension:

Your lock file does not contain a compatible set of packages. Please run composer update.
    
Problem 1
   - Root composer.json requires PHP extension ext-soap * but it is missing from your system. Install or enable PHP's soap extension.
    
To enable extensions, verify that they are enabled in your .ini files:
   - /usr/local/etc/php/php.ini
   - /usr/local/etc/php/conf.d/docker-php-ext-intl.ini
   - /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
   - /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
   - /usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini
   - /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini

My Dockerfile parts:

    FROM php:8.0-fpm-alpine
    RUN set -eux; \
        apk update; \
        apk add php-soap; \

    RUN apk add --no-cache postgresql-dev; \
        docker-php-ext-install soap; \
        docker-php-ext-enable soap; \

I dont get any errors on build docker-compose.. Other extensions are OK. Only soap have problem.

I try also FROM php:8.0-fpm-alpine3.15 and other extension names like php8-soap/php-soap.

I also tried using https://github.com/codecasts/php-alpine - no effect


Solution

  • Working version:

    FROM php:8.0-fpm-alpine3.15
    
    RUN set -eux; \
        apk update; \
        apk add libxml2-dev; \
        apk add php8-soap; \
    
    
    RUN apk add --no-cache postgresql-dev; \
        docker-php-ext-install soap; \
        docker-php-ext-enable soap; \