请稍等 ...
×

采纳答案成功!

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

【统一解决docker run报错】例如 Cap老师提醒您 或 m1 max 电脑运行镜像的错误

问题原因:
根据解答经验,大都在第二课遇到此问题。
运行命令如下:

docker run --rm -v $ (pwd):$ (pwd) -w $(pwd) -e ICODE=xxx cap1573/cap-protoc -I ./ --go_out=./ --micro_out=./ ./*.proto

然后运行失败。

解决办法:
以Mac本本为例:
你的编程目标应该是这样的:
图片描述
就是说使用protoc命令,不再用docker run 那个命令了。

部署步骤:
以下命令可直接复制粘贴,手敲容易出错。

步骤1. brew安装
cd ~
brew install protobuf 
protoc --version
/*
安装成功,会看到如下输出:
libprotoc 3.13.0
*/

步骤2. 安装针对Go语言的代码生成插件
go get github.com/golang/protobuf/protoc-gen-go

步骤3. 安装protoc-micro-go

cd ~
git clone https://github.com/micro/protoc-gen-micro.git $GOPATH/src/github.com/micro/protoc-gen-micro
cd $GOPATH/src/github.com/micro/protoc-gen-micro
go build
sudo cp protoc-gen-micro $GOROOT/bin 

截图如下:
图片描述

执行完以上4步骤之后就算完成,以课程new-micro/proto/cap/imooc.proto为例:
图片描述
图片描述

命令:

// 记得在proto文件中添加 option, 是下面这样的
option go_package = ".;proto";

imooc.proto代码:

syntax = "proto3";
// 记得添加 option, 是下面这样的
option go_package = ".;proto";

package go.micro.service.imooc;

service Cap {
  //          SayRequest 接受客户端请求参数 SayResponse 将结果返回给客户端
  rpc SayHello(SayRequest) returns (SayResponse ) {}
}

message SayRequest {
  string message = 11;
}

message SayResponse {
  string answer = 12;
}

测试结果如下:
图片描述

可以看到大功告成!

细节总结:
你需要在cap老师给的proto文件添加这一行代码:

// 记得添加 option, 是下面这样的
option go_package = ".;proto";

记住,以后该课程,使用protoc,不使用docker run的话,你要在所有的protoc文件见添加这行命令,切记勿忘!!!

点个赞,置个顶,是对我输出的鼓励~
2022,奥利给~

其它问题:
问题图片描述:
图片描述
问题信息描述:
[root@cap~] protoc -I ./ --go_out=./ --micro_out=./ ./imooc.proto
protoc-gen-go: invalid Go import path “.” for "imooc.proto"
The import path must contain at least one forward slash (’/’) character.
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
–go_out: protoc-gen-go: Plugin failed with status code 1.

解决办法:
图片描述
该问题因人而异,一般是自己的protoc环境装的有问题导致的这个问题。
ps:我的protoc是 c++版,然后make install 编译的,这么做没遇到这个问题。

到这里应该就没啥问题了,该遇到的问题都有命令和图片说明。

正在回答

2回答

已经mark

1 回复 有任何疑惑可以回复我~
  • github.com/micro/protoc-gen-micro 这个repo已经没了...
    回复 有任何疑惑可以回复我~ 2023-06-30 20:14:41
Shiyu_2020 2022-05-29 18:20:10

卡在了第三步, github.com/micro/protoc-gen-micro 这个repo已经没了...

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信