You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于dunglas/symfony-docker构建PHP7.4容器报php_intl.lo错误如何解决

问题根因

你遇到的make: /bin/sh: Operation not permitted报错本质是低版本Docker与Alpine 3.14+镜像的seccomp系统调用限制不兼容。Alpine 3.14及以上版本默认使用了新的系统调用,而Docker 19.03版本的默认seccomp安全配置没有放开这些调用,会拦截容器内的shell执行、编译等操作,和你容器内的运行权限无关。

可行解决方案

方案1:固定基础镜像为兼容的Alpine版本(无需管理员权限,优先推荐)

直接修改Dockerfile的基础镜像,使用兼容Docker 19.03的Alpine 3.13版本PHP镜像,把原Dockerfile中的:

FROM php:${PHP_VERSION}-fpm-alpine AS symfony_php

替换为:

FROM php:7.4-fpm-alpine3.13 AS symfony_php

如果要保留ARG变量的灵活性,也可以调整为:

ARG PHP_VERSION=7.4
ARG ALPINE_VERSION=3.13
FROM php:${PHP_VERSION}-fpm-alpine${ALPINE_VERSION} AS symfony_php

改完后直接重新执行构建即可,不需要其他配置调整。


方案2:构建时临时关闭seccomp限制(无需管理员权限)

如果不想修改Dockerfile,可以在构建命令中添加安全选项绕过seccomp限制:

  1. 临时关闭BuildKit(Docker 19.03的BuildKit不支持构建阶段传security-opt参数):
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
  1. 执行带安全选项的构建命令:
docker-compose build --security-opt seccomp=unconfined php

方案3:升级Docker版本(需要管理员权限,长期解决方案)

如果可以申请到设备管理员权限,把Docker升级到20.10.0及以上版本,即可彻底解决和新版Alpine镜像的兼容性问题,不需要修改任何项目配置。


内容的提问来源于stack exchange,提问作者Astro-Otter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:54:03