从Windows 10推送到本地Balena设备时,Docker文件无法正确复制子目录中的文件
我正在编写一个Typescript应用程序,我想在几个使用Balena管理和部署的Raspberry PI上运行。我的开发计算机正在运行Windows 10。我对巴莱纳和多克是相当陌生的 我正试图在Docker文件中编译我的typescript,但当推送到以本地模式运行的Balena设备时,COPY命令似乎无法正确复制子目录中的文件 我有一个非常简单的文件结构,因为我刚刚启动了这个项目:从Windows 10推送到本地Balena设备时,Docker文件无法正确复制子目录中的文件,docker,copy,dockerfile,subdirectory,Docker,Copy,Dockerfile,Subdirectory,我正在编写一个Typescript应用程序,我想在几个使用Balena管理和部署的Raspberry PI上运行。我的开发计算机正在运行Windows 10。我对巴莱纳和多克是相当陌生的 我正试图在Docker文件中编译我的typescript,但当推送到以本地模式运行的Balena设备时,COPY命令似乎无法正确复制子目录中的文件 我有一个非常简单的文件结构,因为我刚刚启动了这个项目: Dockerfile start.sh src/ - index.ts - tsconfig.json 我
Dockerfile
start.sh
src/
- index.ts
- tsconfig.json
我的Dockerfile如下所示:
FROM resin/raspberrypi3-node:10.0.0
WORKDIR /usr/src/app
COPY package.json package.json
COPY package-lock.json package-lock.json
RUN npm i -g typescript
RUN JOBS=MAX npm install --production --unsafe-perm && npm cache verify && rm -rf /tmp/*
COPY . ./
RUN tsc -p src
CMD ["bash", "start.sh"]
在本地模式下构建映像并将其推送到Balena设备时,当Dockerfile的执行到达“RUN tsc-p src”命令时,我收到以下错误:
[Build] [main] Step 8/11 : RUN tsc -p src
[Build] [main] ---> Running in b843b59050da
[Build] [main] error TS5058: The specified path does not exist: 'src'.
Some services failed to build:
main: The command '/bin/sh -c tsc -p src' returned a non-zero code: 1
同样,我不能将cd刻录到子目录,而只从那里运行tsc命令:
[Build] [main] Step 8/11 : RUN cd src
[Build] [main] ---> Running in 7620e8a516f3
[Build] [main] /bin/sh: 1: cd: can't cd to src
在“RUN tsc-p src”之前,我在Dockerfile中插入了一个“RUN ls”命令,以验证文件是否被复制,并打印出以下内容:
[Build] [main] Step 8/11 : RUN ls
[Build] [main] ---> Running in bf8b3c63454e
[Build] [main] CHANGELOG.md
[Build] Dockerfile
[Build] README.md
[Build] node_modules
[Build] package-lock.json
[Build] package.json
[Build] src\index.ts
[Build] src\tsconfig.json
[Build] start.sh
[Build] [main] Removing intermediate container bf8b3c63454e
[Build] [main] ---> 27ed6ea5eb9b
[Build] [main] Step 9/11 : RUN tsc -p src
[Build] [main] ---> Running in 6ac5f86b5637
[Build] [main] error TS5058: The specified path does not exist: 'src'.
乍一看,子目录似乎复制正确,但是-如果我错了,请纠正我-ls不应该能够列出子目录中的文件,而且似乎COPY命令以某种方式压平了子目录。老实说,我不确定发生了什么事
值得注意的是:当从my dev计算机的终端运行“tsc-p src”时,该项目可以很好地编译TS,并且当将项目推送到未在本地模式下运行的Balene设备时,文件被正确复制。当我将项目推送到以本地模式运行的Balena设备时,它无法正确复制文件
我有什么明显的遗漏吗