【Linux】Dockerfile,ubuntu默认shell不是bash?RUN source命令报错!

Dash is not bash    

在一些 docker 官方 Image 中,执行一些 .sh 文件的时候遇到了一些奇怪现象,比如:

1 2 3
# Run something like: [[ $ABC =~ regexp ]] #> [[: not found

 

其实是因为此 Image 中 sh 并非 bash,而是 dash:

1 2
ls -l /bin/sh #> /bin/sh -> dash

 

此时,只需重置 sh 就好了:

1 2
rm /bin/sh ln -s /bin/bash /bin/sh

 

不过,在 docker image 里,还是不建议执行 .sh 文件。所有事情都在 host 上完成,之后 -v 共享目录给 docker container 为好。

 

参考资料:

http://stackoverflow.com/questions/20635472/using-the-run-instruction-in-a-dockerfile-with-source-does-not-work

http://zgu.me/blog/2014/08/24/dash-is-not-bash/

 

posted @ 2016-03-21 10:53  junneyang  阅读(2954)  评论(0编辑  收藏  举报