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

执行docker-compose构建服务遇/bin/sh权限错误求助(Docker 24)

问题:Docker构建触发make: /bin/sh: Operation not permitted错误

执行命令docker-compose up -d --build --force-recreate时出现构建失败,已尝试Docker论坛提及的升级至Docker 20的方案,但当前使用Docker 24版本,问题仍未解决。

Bash错误信息

make: /bin/sh: Operation not permitted
make: *** [Makefile:191: bcmath.lo] Error 127
ERROR: Service 'app' failed to build: The command '/bin/sh -c docker-php-ext-install     bcmath     intl     mbstring     mysqli     opcache     pdo_mysql     simplexml     soap     sockets     sodium     xsl     zip     && pecl install mongodb' returned a non-zero code: 2

Dockerfile内容

FROM php:7.4-fpm-alpine3.16

RUN apk add --no-cache \
    acl \
    bash \
    curl-dev \
    curl \
    git \
    icu-dev \
    libsodium-dev \
    libxml2-dev \
    libxslt-dev \
    libzip-dev \
    linux-headers \
    oniguruma-dev \
    openssh \
    nano \
    sqlite-dev \
    supervisor \
    tzdata \
    vim \
    $PHPIZE_DEPS

RUN ln -s /usr/share/zoneinfo/Asia/Manila /etc/localtime

RUN docker-php-ext-install \
    bcmath \
    intl \
    mbstring \
    mysqli \
    opcache \
    pdo_mysql \
    simplexml \
    soap \
    sockets \
    sodium \
    xsl \
    zip \
    && pecl install mongodb

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
    && sed -i "/history-search-/s/^#//g" /etc/inputrc \
    && sed -i "/export PS1/a export HISTSIZE=10000" /etc/profile

EXPOSE 9001
解决方案

1. 排查权限与Docker安全配置

  • 确认本地构建目录权限,避免非root用户构建时出现权限不足
  • 关闭Docker的userns-remap功能:编辑/etc/docker/daemon.json,添加"userns-remap": false,重启Docker服务

2. 调整镜像与构建命令

  • 更换基础镜像版本,比如用php:7.4-fpm-alpine3.17替代3.16,旧Alpine版本可能存在兼容性问题
  • 拆分docker-php-ext-install命令,逐个安装扩展,定位具体出错步骤
  • 在apk add前执行apk update,确保Alpine包索引为最新

3. 检查系统安全限制

  • Linux系统临时关闭SELinux测试:执行sudo setenforce 0后重新构建
  • 检查AppArmor配置,确保Docker进程拥有足够的构建权限

4. 修改Docker Compose安全选项

在docker-compose.yml的app服务构建配置中添加安全参数:

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
      security_opt:
        - seccomp:unconfined

内容的提问来源于stack exchange,提问作者Player1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:00:15