Sed 在构建 Docker 图像时找不到文件

Sed cannot find file while building Docker image

我正在尝试构建我的第一个 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。事实上,我已将该命令粘贴到我的会话中并看到它完成了它的工作。

我做错了什么?

如果我 运行 在我的主机上使用你的命令,我会得到同样的结果;看起来你的命令在换行符方面格式不正确。

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

错误信息误导了我。我发现在复制和粘贴时,tab 字符没有正确粘贴。

我用 space 替换了那些字符,问题就解决了。