请教一下大佬,bookstore中,我需要生成哪些dockerfile,怎么生成?然后怎么用? 如果需要在k8s中部署,有没有可以参考的配置文件? 谢谢
[zeromicro/go-zero]goctl docker generate的用法
回答
有main函数的就需要生成 Dockerfile
,goctl docker
命令可以生成
在哪一级目录执行这个命令
main函数所在的目录
可以了。多谢
做了一个docker-compose.yml
version: "3.8"
services:
api:
build:
context: .
dockerfile: ./api/Dockerfile
depends_on:
- add
- check
ports:
- "8888:8888"
add:
build:
context: .
dockerfile: ./rpc/add/Dockerfile
ports:
- "8080:8080"
check:
build:
context: .
dockerfile: ./rpc/check/Dockerfile
ports:
- "8081:8081"
服务可以正常工作,但是有这个警告
{"level":"warn","ts":"2020-11-21T09:02:53.463+0800","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-c49f1602-2905-482a-ad97-242d7c7586db/xxx.xxx.xxx.xx:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: all SubConns are in TransientFailure, latest connection error: connection error: desc = \"transport: Error while dialing dial tcp: lookup etcd on 127.0.0.11:53: no such host\""}
在main函数所在的目录下生成dockerfile文件会报这个错误 我现在的解决方案是在bookstore目录下生成多个dockerfile 文件,然后对rpc服务创建镜像的时候指定dockerfile文件名
就是需要在每个有main的目录执行 goctl docker -go <main.go>
,然后在上级有 go.mod
的目录执行 docker build -t <img> -f <Dockerfile>
最新版里如果执行 docker build
的时候当前目录没有 go.mod
会报错
ok.已经可以了多谢大佬