I got an error when trying to run composer update, please help me to know what's wrong with current setup.
It tells me that "require ext-soap * -> it is missing from your system. Install or enable PHP's soap extension." Detail error from ubuntu terminal: Problem 1 - artisaninweb/laravel-soap[0.3.0, ..., 0.3.0.10] require ext-soap * -> it is missing from your system. Install or enable PHP's soap extension. - Root composer.json requires artisaninweb/laravel-soap ^0.3.0 -> satisfiable by artisaninweb/laravel-soap[0.3.0, ..., 0.3.0.10].
Current setup:
- Dockerfile
ARG PHP_VERSION
FROM php:${PHP_VERSION}-fpm-alpine
WORKDIR /var/www
COPY docker/php/xdebug.ini /usr/local/etc/php/conf.d
COPY docker/start.sh /usr/local/bin/start
RUN chown -R www-data:www-data /var/www \
&& chmod u+x /usr/local/bin/start
RUN apk add --no-cache $PHPIZE_DEPS \
&& pecl install xdebug \
&& docker-php-ext-install pdo pdo_mysql pcntl json posix bcmath calendar -j$(getconf _NPROCESSORS_ONLN) \
&& docker-php-ext-enable xdebug \
&& apk add --no-cache curl \
&& apk add --no-cache python3 \
&& apk add --no-cache bash \
&& apk add --no-cache which \
&& apk add --no-cache sudo \
&& apk add --no-cache su-exec \
&& apk add --no-cache libxml2-dev \
&& apk add --no-cache gmp-dev
RUN apk add --no-cache freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev && \
docker-php-ext-configure gd \
--with-freetype \
--with-jpeg && \
NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) && \
docker-php-ext-install -j${NPROC} gd && \
apk del --no-cache freetype-dev libpng-dev libjpeg-turbo-dev
RUN docker-php-ext-install gmp
RUN docker-php-ext-install soap && \
docker-php-ext-enable soap
- docker-composer.yml
# Laradose
# Author: Adrien Poupa
# https://github.com/AdrienPoupa/laradose
version: "3.7"
services:
mariadb:
image: mariadb:10.3
ports:
- "${DB_PORT}:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE}
volumes:
- ./docker/mysql:/docker-entrypoint-initdb.d
networks:
- laravel
x-php:
&php-base
build:
context: .
args:
PHP_VERSION: ${PHP_VERSION}
dockerfile: ./docker/php/Dockerfile
environment:
PHP_VERSION: ${PHP_VERSION}
volumes:
- ./:/var/www
working_dir: /var/www
user: "${USER_ID}:${GROUP_ID}"
networks:
- laravel
php:
<<: *php-base
environment:
PHP_VERSION: ${PHP_VERSION}
PHP_IDE_CONFIG: "serverName=${PHP_SERVER_NAME}"
nginx:
image: nginx:stable-alpine
ports:
- "${NGINX_HTTPS_PORT}:443"
- "${NGINX_HTTP_PORT}:80"
volumes:
- ./:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./docker/nginx/keys:/etc/nginx/ssl
networks:
- laravel
artisan:
<<: *php-base
depends_on:
- mariadb
entrypoint: ["php", "/var/www/artisan"]
scheduler:
<<: *php-base
environment:
PHP_VERSION: ${PHP_VERSION}
CONTAINER_ROLE: scheduler
entrypoint: ["/usr/local/bin/start"]
depends_on:
- mariadb
user: "${USER_ID}:${GROUP_ID}"
composer:
image: composer:2.0.6
volumes:
- ./:/var/www
working_dir: /var/www
entrypoint: "composer --ignore-platform-reqs"
user: "${USER_ID}:${GROUP_ID}"
networks:
- laravel
npm:
image: node:12
ports:
- "${BROWSERSYNC_PORT}:3000"
- "${BROWSERSYNC_ADMIN_PORT}:3001"
- "${WEBPACK_PORT}:${WEBPACK_PORT}"
environment:
MIX_MODE: ${MIX_MODE}
MIX_BROWSERSYNC: ${MIX_BROWSERSYNC}
entrypoint: "npm run ${MIX_MODE}"
volumes:
- ./:/var/www
- ./docker/nginx/keys:/etc/ssl
working_dir: /var/www
user: "${USER_ID}:${GROUP_ID}"
networks:
- laravel
networks:
laravel: