尝试安装mysql php扩展时,Docker运行命令失败

时间:2017-06-06 23:03:16

标签: php python mysql docker

我有一个docker php容器,我需要连接到mysql容器,为了这样做,我使用以下docker文件来构建合适的图像:

FROM php:7-fpm
ADD /build /build
ADD /config /config
RUN docker-php-ext-install mysqli

我编写了一个python脚本来自动化构建和运行容器的过程,特别是它执行这些函数来构建php容器图像:

import docker
client = docker.from_env()
php_image = client.images.build(path="./php-docker/",tag="bjaniston/php-container",rm=True)

直到最近,这个工作完全正常,但现在已经开始失败并出现以下错误:

Traceback (most recent call last):
  File "docker_setup.py", line 3, in <module>
    php_image = client.images.build(path="./php-docker/",tag="bjaniston/php-container",rm=True)
  File "/usr/local/lib/python3.4/dist-packages/docker/models/images.py", line 172, in build
    raise BuildError(chunk['error'])
docker.errors.BuildError: The command '/bin/sh -c docker-php-ext-install mysqli' returned a non-zero code: 2

我不确定会导致此错误的原因,自上次成功构建此映像以来,我没有修改过docker文件。

1 个答案:

答案 0 :(得分:0)

在终端docker中手动运行build命令后,出现了一个不同的错误,说该设备空间不足,浏览了docker论坛以破译我在这个页面上偶然发现的错误: https://forums.docker.com/t/where-does-docker-keep-images-containers-so-i-can-better-track-my-disk-usage/8370/9

运行下面的shell命令解决了我的问题(请记住这会从主机中删除所有已命名的卷):

docker volume rm $(docker volume ls -q )

来自docker python API的原始错误似乎非常不透明,并且几乎不知道问题的原因。