3.2 直接Docker容器构建执行

未匹配的标注

容器执行

这一章中,我们来测试一下上一章制作的镜像是否可以正常使用。

获取etcd在docker中的地址

还记得吗?在2.3 服务编写时我们说过,go-micro默认查找的地址是127.0.0.1,但是etcdaccountapigw都是在不同容器中运行的,所以需要我们启动时手动指定etcd容器所在的地址。

我们执行

> docker inspect etcd1 --format "{{.NetworkSettings.IPAddress}}"

172.17.0.2

这样我们就能拿到etcd在docker容器中的地址。

docker容器运行时不指定网络命名空间,则默认使用default,default之间的容器在同一个网段中,所以可以互相通讯。

account

我们接着启动account服务

docker run -e PARAMS="--registry etcd --registry_address 172.17.0.2:2379" --name="account" -d registry.cn-shenzhen.aliyuncs.com/go_micro/account:v1.0

通过 -e 传递环境变量到PARAMS中,这跟我们上一章编写的Dockerfile文件有关

apigw

我们继续启动apigw服务

docker run -e PARAMS="-p 8091 --registry etcd --registry_address 172.17.0.2:2379" -p 8091:8091 --name="apigw" -d registry.cn-shenzhen.aliyuncs.com/go_micro/apigw:v1.0

测试

我们最后发送请求进行测试

> curl -X POST -d "username=guaosi&password=guaosi" http://127.0.0.1:8091/account/register

{"code":0,"message":""}

代码仓库

最终的代码和部署文件,已经传至github,欢迎star。

github.com/guaosi/go-micro-build

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~