首页 > 解决方案 > `docker-compose build`在复制后找不到文件或目录

问题描述

docker-compose build --no-cache失败并出现此错误:

 ---> Running in f62172d2e9f9
Removing intermediate container f62172d2e9f9
 ---> db5896c4aac5
Step 10/16 : COPY ./rclone/install.sh /data/rclone/
 ---> e659d60665cf
Step 11/16 : COPY ./rclone.conf /root/.config/rclone/rclone.conf
 ---> 61e3b9107870
Step 12/16 : RUN chmod +x ./rclone/install.sh
 ---> Running in 9c5eead9141b
Removing intermediate container 9c5eead9141b
 ---> 42fefac58542
Step 13/16 : RUN ./rclone/install.sh
 ---> Running in fbadefae8a57
': No such file or directory
ERROR: Service 'api' failed to build : The command '/bin/sh -c ./rclone/install.sh' returned a non-zero code: 127

这是 Dockerfile:

FROM node:10.22-alpine3.11

RUN apk update
RUN apk add --no-cache curl
RUN apk add --no-cache bash
RUN apk add --update python make g++\
   && rm -rf /var/cache/apk/*


RUN npm install pm2 -g
RUN apk add --update python make g++\
   && rm -rf /var/cache/apk/*
RUN apk add nginx


WORKDIR /data

COPY ./rclone/install.sh /data/rclone/

COPY ./rclone.conf /root/.config/rclone/rclone.conf

RUN chmod +x ./rclone/install.sh
RUN ./rclone/install.sh

COPY . /data/project/NodeApp

RUN chmod +x /data/project/NodeApp/scripts/.supervisor.sh

CMD /data/project/NodeApp/scripts/.supervisor.sh

关于是什么原因以及如何解决它的任何想法?rclone 位于根文件夹中。我已经查看了以前回答的有关 docker-compose 不起作用的问题,并且研究了这个问题并且没有找到太多关于它的内容。

任何建议都会很棒!提前致谢。

标签: linuxbashdockerdocker-compose

解决方案


@DavidMaze 帮我解决了这个问题。\r由于从 GitHub 下载文件时已转换为 DOS,因此行尾出错。运行dos2unix解决了这个问题,我们添加了一个.gitattributes,以便不再转换行尾。请参阅Shell 脚本对编码和行尾敏感吗?更多解决方案。


推荐阅读