我有运行以下文件的docker:
CMD /usr/local/bin/deploy.sh
deploy.sh文件中的第一个命令是
cd /home/app
它在Linux上的Docker中有效,但是在Windows上的Docker中,我出现以下错误:
/usr/local/bin/deploy.sh: 1: cd: can't cd to /home/app
原因是什么?
这是我的dockerfile:
FROM node:8
RUN apt-get update
RUN npm install pm2 -g
WORKDIR /home/app
ADD ./deploy.sh /usr/local/bin/deploy.sh
RUN chmod g+x /usr/local/bin/deploy.sh
RUN chmod u+x /usr/local/bin/deploy.sh
RUN mkdir /root/.ssh/
RUN touch /root/.ssh/known_hosts
RUN chmod +x /usr/local/bin/deploy.sh
RUN chmod 777 /usr/local/bin/deploy.sh
CMD /usr/local/bin/deploy.sh
答案 0 :(得分:0)
看起来您的行尾有CRLF (Windows)
,并且没有LF (linux)
,这是运行.sh或通常在linux下工作(docker-> linux)所必需的。
在记事本++或IntelIJ IDE中打开deploy.sh
文件(我主要在Windows上使用docker在InteljIJ中始终工作),并检查行尾。
在Windows上,我一直使用LF结尾的globaly与IntelIJ进行evry项目。