无法运行使用IntelliJ插件的docker卸载脚本
环境 :
我正在使用IntelliJ 14将Docker容器部署到本地计算机上的CoreOS(使用Vagrant和VirtualBox创build的虚拟机)中。
设置 :
我的Dockerfile应该运行一个安装脚本:
ADD setup.sh /tmp/setup.sh RUN chmod +x /tmp/setup.sh RUN /tmp/setup.sh
Docker部署使用IntelliJ :
运行Docker部署(使用IntelliJ)时,它生成一个图像,创build一个容器,但没有运行我的脚本,出现以下错误:
Step 5 : RUN /tmp/setup.sh ---> Running in cb36ed95ad50 [91m/bin/sh: 1: [0m [91m/tmp/setup.sh: not found[0m [91m [0m Error: The command '/bin/sh -c /tmp/setup.sh' returned a non-zero code: 127 Failed to deploy 'Deployment: Dockerfile: Dockerfile': The command '/bin/sh -c /tmp/setup.sh' returned a non-zero code: 127
Docker部署使用Circle CI :
我还使用circleci来连续部署Docker容器在AWS EC2上(我的分段和生产环境)。
当使用相同的docker文件和setup.sh脚本circleci运行正常。
任何想法有什么不同?
谢谢,
艾菲
如果91m
不属于/tmp/setup.sh
的path,则可能是行结束编码问题。
在ASCII中,行末(回车符CR
)可以打印为m
或^M
和方括号[
编码为91
。
在Windows中,行尾由字符CR+LF
表示,而在Unix中只有LF
。
您可以尝试将setup.sh
文件格式从Windows转换为Unix。 有很多工具可以为你做。 在Unix上我通常使用dos2unix
。 在Windows上,我通常使用notepad++
。
以下是如何使用dos2unix
运行它:
- 在名为dos2unix的CoreOS机器安装软件包上运行以下命令:
dos2unix setup.sh
这里是如何使用notepad++
:
- 在你的Windows机器上安装
notepad++
- 用
notepad++
打开setup.sh
- 转到编辑> EOL转换> Unix / OSX格式
- 保存文件
- 用
再次用新的setup.sh
运行你的docker部署,我希望它能解决你的问题。