Docker 服务构建失败:返回非零代码 1

Posted

技术标签:

【中文标题】Docker 服务构建失败:返回非零代码 1【英文标题】:Docker service failed to build : return a non-zero code 1 【发布时间】:2017-04-11 04:15:33 【问题描述】:

我尝试使用 docker 为 php 安装一些需要的扩展。

这是我的 Dockerfile:

FROM php:7-fpm

RUN apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    libpng12-dev \
    libsqlite3-dev \
    libssl-dev \
    libcurl3-dev \
    libxml2-dev \
    libzzip-dev \
&& docker-php-ext-install iconv json mcrypt mbstring mysql mysqli pdo_mysql pdo_sqlite phar curl ftp hash session simplexml tokenizer xml xmlrpc zip \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd

WORKDIR /var/www

CMD ["php7-fpm"]

这是我得到的错误:

错误:/usr/src/php/ext/mysql 不存在

用法:/usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name ...] 即:/usr/local/bin/docker-php-ext-install gd mysqli /usr/local/bin/docker-php-ext-install pdo pdo_mysql /usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop

如果需要自定义 ./configure 参数,请参阅 docker-php-ext-configure

ext-name 的可能值: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode 反射会话 shmop simple spl 标准 sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip

错误:服务 'php-localdev' 无法构建:命令 '/bin/sh -c apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12-dev libsqlite3 -dev libssl-dev libcurl3-dev libxml2-dev libzzip-dev && /usr/local/bin/docker-php-ext-install iconv json mcrypt mbstring mysql mysqli pdo_mysql pdo_sqlite phar curl ftp hash session simplexml tokenizer xml xmlrpc zip && /usr /local/bin/docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && /usr/local/bin/docker-php -ext-install gd'

返回一个非零代码:1

您是否在我的 Dockerfile 中发现任何问题,或者问题出在其他地方?

php docker hub 启发了我对这个 Dockerfile 的启发。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

在错误输出中,它列出了 ext_name 的可能值。 mysql 未列出。有mysqlipdo_mysql,但没有mysql。您的命令确实包含mysql,错误的第一行似乎在抱怨这一点。试着把它拿出来看看是否有效。

【讨论】:

完美,我在我的 Dockerfile 中删除了 mysql 并且有效。谢谢

以上是关于Docker 服务构建失败:返回非零代码 1的主要内容,如果未能解决你的问题,请参考以下文章

构建 Dockerfile 使用非零代码 139 执行

Sencha 构建失败的指南针进程以非零代码 1 退出

构建失败 - 在 AWS Amplify 中的“npm build”之后检测到非零退出代码

Xcode - 命令 PhaseScriptExecution 因非零退出代码而失败 - Mac M1

无法在 Elastic Beanstalk 上部署节点:命令“/bin/sh -c npm install”返回非零代码:1

命令 CodeSign 在 Xcode 版本 13.1 中因非零退出代码而失败