问题描述
本地运行命令和docker运行命令的解释器不同,在本地已经是/bin/bash
,但是docker中仍然是/bin/sh
,需要修改docker中/bin/sh
为/bin/bash
解决方案
1、首先看docker容器的详细信息。输入“docker container ls |grep xxxx
”,看其中的命令部分,如果是“/bin/sh
”说明使用的不一定是bash
,可能是dash解释器。
使用命令ls -l /bin/sh
,如果显示的是/bin/sh -> dash
,说明用的是dash
2、在DockerFile中修改CMD部分,将其设置为/bin/bash
#原先命令
CMD ./start.sh
#修改为
CMD ["/bin/bash", "-c", "./start.sh"]