WSL中Dockerfile的COPY指令项目路径设置及报错解决
WSL环境Docker构建路径错误(return non zero code :1)解决办法
控制台出现return non zero code :1错误,我是Docker新手,在WSL环境中构建Dockerfile时遇到路径错误,该如何解决?
我设置的COPY指令如下:
COPY /users/home/project/docker_sample_web_app/docker_sample_web_app /docker_sample_web_app
解决步骤:
- 修正源路径格式:WSL采用类Unix路径规则,你写的
/users/home/是错误路径,WSL中用户主目录是/home/你的用户名/;如果是Windows上的目录,会挂载在/mnt/盘符/下(比如/mnt/c/Users/你的用户名/...)。先在WSL终端用ls命令验证路径是否存在,比如ls /home/xxx/project/docker_sample_web_app/docker_sample_web_app(替换xxx为你的用户名)。 - 改用相对路径:Docker构建依赖「构建上下文」(即执行
docker build时所在的目录),绝对路径会超出上下文范围导致找不到文件。假设你的Dockerfile在project目录下,把COPY指令改成:
然后在COPY docker_sample_web_app/docker_sample_web_app /docker_sample_web_appproject目录下执行docker build .(.代表当前目录为构建上下文)。 - 检查构建上下文范围:执行
docker build时,Docker只能访问上下文目录及其子目录里的文件,不要用超出这个范围的绝对路径。如果源文件不在上下文里,要么把Dockerfile移到合适位置,要么调整上下文目录。 - 确认文件权限:确保WSL中源文件有可读权限,执行
chmod -R +r /home/xxx/project/docker_sample_web_app(替换对应路径),避免Docker因权限不足无法读取文件。
内容的提问来源于stack exchange,提问作者Shrikant Alone
相关产品推荐
相关产品推荐

