2016-01-26 17 views
1

環境
我使用的IntelliJ 14 Docker容器部署到CoreOS(VM使用流浪漢,VirtualBox的創建),我的本地機器上。無法運行使用的IntelliJ插件腳本的碼頭工人deplyment

設置
我Dockerfile應運行安裝腳本:

ADD setup.sh /tmp/setup.sh 
RUN chmod +x /tmp/setup.sh 
RUN /tmp/setup.sh 

泊塢部署使用的IntelliJ
當運行泊塢窗部署(使用的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腳本一起使用時,它運行正常。

任何想法有什麼區別?

謝謝,
艾菲

+1

你用什麼操作系統的開發? – Lital

+1

運行intellij的本地機器上的Windows –

回答

2

如果91m不屬於路徑/tmp/setup.sh,那麼它可能是線路編碼問題的一端。

在ASCII,線(回車CR)的端部可以被打印爲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再次運行碼頭工人的部署和我希望這將解決您的問題。

+0

謝謝! '91m'不屬於我的路線。 –