在构建Docker镜像时,Sed无法找到文件

时间:2015-04-03 08:38:28

标签: sed docker dockerfile

我正在尝试构建我的第一个Docker镜像。我的图片基于centos:7。但是,Docker镜像停留在此命令:

RUN /usr/bin/sed -e 's/127.0.0.1:9000/9000/' \
        -e '/allowed_clients/d' \
        -e '/catch_workers_output/s/^;//' \
        -e '/error_log/d' \
        -i /etc/php-fpm.d/www.conf

这是我在构建图像时得到的结果:

Step 5 : RUN /usr/bin/sed -e 's/127.0.0.1:9000/9000/' ??????? -e '/allowed_clien
ts/d' ??????? -e '/catch_workers_output/s/^;//' ??????? -e '/error_log/d' ??????
? -i /etc/php-fpm.d/www.conf
 ---> Running in 660063647d37
/usr/bin/sed: can't read ???????: No such file or directory
/usr/bin/sed: can't read ???????: No such file or directory
/usr/bin/sed: can't read ???????: No such file or directory
/usr/bin/sed: can't read ???????: No such file or directory
INFO[0000] The command [/bin/sh -c /usr/bin/sed -e 's/127.0.0.1:9000/9000/' ????
??? -e '/allowed_clients/d' ??????? -e '/catch_workers_output/s/^;//' ??????? -e
 '/error_log/d' ??????? -i /etc/php-fpm.d/www.conf] returned a non-zero code: 2

但是,当我连接到半打造的图像时,文件确实存在:

vagrant@vagrant-ubuntu-trusty-64:/vagrant/docker$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED
VIRTUAL SIZE
<none>              <none>              c34b6e6456bd        2 hours ago
295.7 MB
centos              7                   2b8d6139a545        2 days ago
212.1 MB
centos              centos7             2b8d6139a545        2 days ago
212.1 MB
centos              latest              2b8d6139a545        2 days ago
212.1 MB
vagrant@vagrant-ubuntu-trusty-64:/vagrant/docker$ docker run -it --rm c34b6e645
6bd
[root@b61b0154b97b /]# ls /etc/php-fpm.
php-fpm.conf  php-fpm.d/
[root@b61b0154b97b /]# ls /etc/php-fpm.d
www.conf

我还确认sed位于/usr/bin/sed。事实上,我已经将命令粘贴到我的会话中并且已经看到它完成了它的工作。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

如果我在主机上运行你的命令,我会得到同样的结果;看起来你的命令在换行符方面是错误的。

我删除所有斜线和新行并检查它是否有效。然后用手将它们一次一个地添加回来,而不是剪切和粘贴。

答案 1 :(得分:0)

错误消息误导了我。我意识到在复制和粘贴时,tab字符未正确粘贴。

我用space替换了这些字符,问题得到解决。