2017-06-06 96 views
0

我有一个需要连接到mysql容器的docker php容器,为此,我使用以下docker文件构造适当的图像:尝试安装mysql php扩展程序时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 

我不知道什么会导致这个错误,我还没有从上次该映像已成功建成修改的泊坞窗文件。

回答

0

在终端泊坞窗手动运行构建命令后发表了不同的错误,指出该设备已经运行的空间,已经浏览过的泊坞窗论坛破译我碰到这个页面跌跌撞撞的错误: 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) 

从泊坞窗的Python API原来的错误显得很不透明的,并给出了问题的原因的一点想法。

+0

我会澄清,该命令删除码头主机中的所有命名卷。 – Robert

+0

感谢您指出,现在编辑我的答案 –