Closed3

docker-php-ext-install socketsがこけてた

pp_devpp_dev

renderでLaravelのアプリをデプロイしていたが、下記のDockerfileでdocker-php-ext-install socketsの箇所でこけていた。

FROM composer AS composer

# copying the source directory and install the dependencies with composer
COPY ./ /app
COPY .env.example /app/.env

# linecorp/line-bot-sdk requires ext-sockets
RUN docker-php-ext-install sockets \
    && composer install --no-interaction --optimize-autoloader --no-dev

~~~~~

発生したのは2022/12/11 3:53以降

Dec 11 03:55:25 AM   > [composer 4/4] RUN docker-php-ext-install sockets     && composer install --no-interaction --optimize-autoloader --no-dev:
Dec 11 03:55:25 AM  #13 13.42 configure: creating ./config.status
Dec 11 03:55:25 AM  #13 13.50 config.status: creating config.h
Dec 11 03:55:25 AM  #13 13.55 /bin/sh /usr/src/php/ext/sockets/libtool --mode=compile cc -I. -I/usr/src/php/ext/sockets -I/usr/src/php/ext/sockets/include -I/usr/src/php/ext/sockets/main -I/usr/src/php/ext/sockets -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib  -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H  -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE   -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DZEND_COMPILE_DL_EXT=1 -c /usr/src/php/ext/sockets/sockets.c -o sockets.lo  -MMD -MF sockets.dep -MT sockets.lo
Dec 11 03:55:25 AM  #13 13.65 mkdir .libs
Dec 11 03:55:25 AM  #13 13.67  cc -I. -I/usr/src/php/ext/sockets -I/usr/src/php/ext/sockets/include -I/usr/src/php/ext/sockets/main -I/usr/src/php/ext/sockets -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DZEND_COMPILE_DL_EXT=1 -c /usr/src/php/ext/sockets/sockets.c -MMD -MF sockets.dep -MT sockets.lo  -fPIC -DPIC -o .libs/sockets.o
Dec 11 03:55:25 AM  #13 13.98 /usr/src/php/ext/sockets/sockets.c:59:12: fatal error: linux/sock_diag.h: No such file or directory
Dec 11 03:55:25 AM  #13 13.98    59 | #  include <linux/sock_diag.h>
Dec 11 03:55:25 AM  #13 13.98       |            ^~~~~~~~~~~~~~~~~~~
Dec 11 03:55:25 AM  #13 13.98 compilation terminated.
Dec 11 03:55:25 AM  #13 13.98 make: *** [Makefile:209: sockets.lo] Error 1
Dec 11 03:55:25 AM  ------
Dec 11 03:55:25 AM  Dockerfile:8
Dec 11 03:55:25 AM  --------------------
Dec 11 03:55:25 AM     7 |     # linecorp/line-bot-sdk requires ext-sockets
Dec 11 03:55:25 AM     8 | >>> RUN docker-php-ext-install sockets \
Dec 11 03:55:25 AM     9 | >>>     && composer install --no-interaction --optimize-autoloader --no-dev
Dec 11 03:55:25 AM    10 |
Dec 11 03:55:25 AM  --------------------
Dec 11 03:55:25 AM  error: failed to solve: process "/bin/sh -c docker-php-ext-install sockets     && composer install --no-interaction --optimize-autoloader --no-dev" did not complete successfully: exit code: 2
pp_devpp_dev

https://github.com/php/php-src/issues/8681#issuecomment-1144062769
上記を参考にdocker-php-extension-installerでsocket拡張機能をインストールするよう修正

FROM composer:latest AS composer

# copying the source directory and install the dependencies with composer
COPY ./ /app
COPY .env.example /app/.env

# linecorp/line-bot-sdk requires ext-sockets
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
RUN install-php-extensions sockets \
    && composer install --no-interaction --optimize-autoloader --no-dev

このスクラップは2022/12/14にクローズされました