请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

【已解决Win常见问题】docker: Error response from daemon:it needs to be an absolute path.

先执行以下命令:

 docker pull cap1573/cap-protoc

问题1:
在git bash中执行:
图片描述
在cmd中执行:
图片描述

docker run --rm -v /c/proto:/c/proto -w /c/proto -e ICODE=your_icode cap1573/cap-protoc -I /c/proto --go_out=/c/proto /c/proto/imooc.proto --micro_out=/c/proto

docker: Error response from daemon: the working directory 'C:/proto' is invalid, it needs to be an absolute path.

解决方法1:
不要在GitBash中执行,在cmd中执行:
图片描述
然后将命令中的 ./ 统统换成绝对路径。

注意细节:
windows操作系统的伙伴,一定不要在命令中出现 ./
为什么?
你写了它也会报上面的错:
absolute path
为什么?
因为只有类Unix系统中才能使用 ./ ,windows系统中不支持这种写法,
所以呢,windows操作系统的童鞋把命令中的 ./ 统统换成绝对路径。
是这样的:【/c/proto】

docker run --rm -v /c/proto:/c/proto -w /c/proto -e ICODE=your_icode cap1573/cap-protoc -I /c/proto --go_out=/c/proto /c/proto/imooc.proto --micro_out=/c/proto

注意上面的细节就没问题了。

总结关键词:
cmd 绝对路径 不出现./

正在回答

2回答

nice

0 回复 有任何疑惑可以回复我~
  • nice、nice、nice、nice终于解决了
    回复 有任何疑惑可以回复我~ 2022-03-12 23:51:01
慕后端633751 2021-12-07 21:56:52

您好!我按照您的方式来写还是不对呢

docker run --rm -v /c/Users/16675/go/src/awesomeProject2/proto:/c/Users/16675/go/src/awesomeProject2/proto -w /c/Users/16675

/go/src/awesomeProject2/proto -e ICODE=YourICODE cap1573/cap-protoc -I /c/Users/16675/go/src/awesomeProject2/proto --go_out=/c/Users/16675/go/src/awesomeProjec

t2/proto /c/Users/16675/go/src/awesomeProject2/proto/test1.proto --micro_out=/c/Users/16675/go/src/awesomeProject2/proto


0 回复 有任何疑惑可以回复我~
  • 提问者 只是为了好玩 #1
    QQ群已回复。文件名是test1.proto而非test1。你粗心写错了。记得重启goland。
    回复 有任何疑惑可以回复我~ 2021-12-07 22:08:23
  • Amber酱呀 回复 提问者 只是为了好玩 #2
    大佬,为什么我这段执行不成功
    docker run --rm -v /D/go/my_mirco_item/user:/D/go/my_mirco_item/user 
    -w   /D/go/my_mirco_item/user -e ICODE=xxx cap1573/cap-protoc 
    -I /D/go/my_mirco_item/user   
    --go_out=/D/go/my_mirco_item/user  
    --micro_out=/D/go/my_mirco_item/user  /D/go/my_mirco_item/user/proto/user/user.proto
    回复 有任何疑惑可以回复我~ 2022-04-28 20:18:53
  • 提问者 只是为了好玩 回复 Amber酱呀 #3
    你可以这样做:(先照着做)
    步骤1:
    在c盘创建proto文件夹
    然后进入proto文件夹,把课程提供的imooc.proto文件复制粘贴道proto文件夹中
    步骤2:
    在cmd中,进入到proto路径下,执行:
    docker run --rm -v /c/proto:/c/proto -w /c/proto -e ICODE=your_icode cap1573/cap-protoc -I /c/proto --go_out=/c/proto /c/proto/imooc.proto --micro_out=/c/proto
    如果执行成功,进入步骤3
    步骤3:
    进入c盘的proto文件夹中,此时应该有了imooc.pb.go 和 imooc.pb.imooc.pb.go这俩文件
    你可以将 imooc.go,imooc.pb.go,imooc.pb.imooc.pb.go 这三个文件复制粘贴到你goland编辑的项目里的proto文件夹下。
    回复 有任何疑惑可以回复我~ 2022-04-28 23:46:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信