无法 运行 使用 IntelliJ 插件的脚本进行 docker 部署
Failed to run a script using IntelliJ plugin for docker deployment
环境:
我正在使用 IntelliJ 14 将 docker 容器部署到本地计算机上的 CoreOS(使用 Vagrant 和 VirtualBox 创建的虚拟机)中。
设置:
我的 Docker 文件应该 运行 一个设置脚本:
ADD setup.sh /tmp/setup.sh
RUN chmod +x /tmp/setup.sh
RUN /tmp/setup.sh
Docker 使用 IntelliJ 部署:
当 运行ning docker 部署(使用 IntelliJ)时,它会构建一个图像,创建一个容器,但无法 运行 我的脚本并出现以下错误:
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 以便在 AWS EC2(我的暂存和生产环境)上持续部署 docker 容器。
当 circleci 与相同的 docker 文件和 setup.sh 脚本一起使用时 运行 没问题。
有什么区别?
如果91m
不属于/tmp/setup.sh
的路径,那么可能是行尾编码问题。
在ASCII中,行尾(回车returnCR
)可能打印为m
或^M
,方括号[
编码为91
.
在 Windows 中,行尾由 CR+LF
字符表示,仅在 Unix 中 LF
.
您可以尝试将 setup.sh
文件格式从 Windows 转换为 Unix。
有许多工具可以为您做到这一点。在 Unix 上我通常使用 dos2unix
。在 Windows 我通常使用 notepad++
.
以下是 运行 使用 dos2unix
的方法:
- 在您的 CoreOS 机器上安装名为 dos2unix 的软件包和 运行 以下命令:
dos2unix setup.sh
以下是如何将它与 notepad++
一起使用:
- 在你的 Windows 机器上安装
notepad++
- Open
setup.sh
with notepad++
- Go to Edit > EOL Conversion > Unix/OSX Format
- Save the file
运行 再次使用新 setup.sh
部署您的 docker,我希望它能解决您的问题。
环境:
我正在使用 IntelliJ 14 将 docker 容器部署到本地计算机上的 CoreOS(使用 Vagrant 和 VirtualBox 创建的虚拟机)中。
设置:
我的 Docker 文件应该 运行 一个设置脚本:
ADD setup.sh /tmp/setup.sh
RUN chmod +x /tmp/setup.sh
RUN /tmp/setup.sh
Docker 使用 IntelliJ 部署:
当 运行ning docker 部署(使用 IntelliJ)时,它会构建一个图像,创建一个容器,但无法 运行 我的脚本并出现以下错误:
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 以便在 AWS EC2(我的暂存和生产环境)上持续部署 docker 容器。
当 circleci 与相同的 docker 文件和 setup.sh 脚本一起使用时 运行 没问题。
有什么区别?
如果91m
不属于/tmp/setup.sh
的路径,那么可能是行尾编码问题。
在ASCII中,行尾(回车returnCR
)可能打印为m
或^M
,方括号[
编码为91
.
在 Windows 中,行尾由 CR+LF
字符表示,仅在 Unix 中 LF
.
您可以尝试将 setup.sh
文件格式从 Windows 转换为 Unix。
有许多工具可以为您做到这一点。在 Unix 上我通常使用 dos2unix
。在 Windows 我通常使用 notepad++
.
以下是 运行 使用 dos2unix
的方法:
- 在您的 CoreOS 机器上安装名为 dos2unix 的软件包和 运行 以下命令:
dos2unix setup.sh
以下是如何将它与 notepad++
一起使用:
- 在你的 Windows 机器上安装
notepad++
- Open
setup.sh
withnotepad++
- Go to Edit > EOL Conversion > Unix/OSX Format
- Save the file
- Open
运行 再次使用新 setup.sh
部署您的 docker,我希望它能解决您的问题。