Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Windows 10推送到本地Balena设备时,Docker文件无法正确复制子目录中的文件_Docker_Copy_Dockerfile_Subdirectory - Fatal编程技术网

从Windows 10推送到本地Balena设备时,Docker文件无法正确复制子目录中的文件

从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 我

我正在编写一个Typescript应用程序,我想在几个使用Balena管理和部署的Raspberry PI上运行。我的开发计算机正在运行Windows 10。我对巴莱纳和多克是相当陌生的

我正试图在Docker文件中编译我的typescript,但当推送到以本地模式运行的Balena设备时,COPY命令似乎无法正确复制子目录中的文件

我有一个非常简单的文件结构,因为我刚刚启动了这个项目:

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设备时,它无法正确复制文件

我有什么明显的遗漏吗