Sed在生成Docker映像时找不到文件

Sed在生成Docker映像时找不到文件,sed,docker,dockerfile,Sed,Docker,Dockerfile,我正试图建立我的第一个码头工人形象。我的图像基于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 这是我在创

我正试图建立我的第一个码头工人形象。我的图像基于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。事实上,我已经将该命令粘贴到会话中,并看到它完成了它的工作


我做错了什么?

如果我在我的主机上运行sed命令,我会得到同样的结果;看起来您的命令的换行符格式不正确


我会删除所有的斜线和新行,并检查它的工作。然后用手一次一个地加回去,而不是剪切粘贴。

错误信息误导了我。我意识到在复制和粘贴时,制表符没有正确粘贴


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

测试时,我会删除sed命令中的-I,以防止删除敏感信息。一旦你确定它工作正常,再添加一次。我会把所有的命令都放在一行,即sed的s/127.0.0.1:9000/9000//允许的_客户/d/渔获量(工人)(产量);/错误\u log/d'/etc/php-fpm.d/www.conf。祝你好运