制作自己的Dubbo Admin镜像
背景
目前在dockerhub
仓库中,Apache
官方提供的Dubbo Admin
镜像只有2
个tag
:0.1.0
和latest
,我在测试的过程中发现这两个官方镜像都存在问题,运行环境是:Spring Boot 2.2.0 + Dubbo 2.7.3
,即使按照 https://github.com/apache/dubbo-admin/issues/342
进行配置后前端页面还是不展示微服务的元数据。
于是我克隆了Dubbo Admin
源码并在本地IDEA
中启动,元数据又正常展示了。猜测是最新的develop
分支修复了某些问题。
修改配置
按照Dubbo Admin
的配置说明,需要在Zookeeper
中添加一个节点/dubbo/config/dubbo/dubbo.properties
,其内容为:
1 | dubbo.registry.address=zookeeper://127.0.0.1:2181 |
这一步目前来看是需要手动操作的,参考 https://github.com/apache/dubbo-admin/issues/342
我们可以修改dubbo-admin-server
源码让其进行自动配置。
修改org.apache.dubbo.admin.config.ConfigCenter
类:
1 | ... |
我们可以在启动参数中传入registryAddress
和metadataAddress
从而动态写入Zookeeper
中。
maven
打包
接下来我们对dubbo-admin-server
模块进行打包:mvn package
。执行成功后可在/dubbo-admin-server/target
目录中看到打好的dubbo-admin-server-0.3.0-SNAPSHOT.jar
包,此jar
包已经包含了dubbo-admin-ui
模块编译之后的dist
静态文件,本地可直接java -jar dubbo-admin-server-0.3.0-SNAPSHOT.jar
启动。启动成功后访问http://127.0.0.1:8080
可查看控制台。
制作Docker
镜像
编写Dockerfile
进入工作目录编写Dockerfile
文件
1 | > cd /opt/images/dubbo-admin |
Dockerfile
文件内容如下:
1 | FROM openjdk:8 |
上传jar
包至Dockerfile
同级目录。
如果是云服务器,可使用命令上传文件:
scp -r /path/dubbo-admin-server-0.3.0-SNAPSHOT.jar root@ip:/opt/images/dubbo-admin
制作镜像并推送
制作镜像:docker build -t sunchaserlilu/dubbo-admin:2021.0.0 .
由于要推送至官方dockerhub
仓库,镜像命名需要遵循一定规则:用户名/镜像名:tag
。
注意命令最后面有一个小数点
.
登录docker
推送镜像至dockerhub
仓库:
1 | > docker login #输入正确的用户名和密码 |
推送会有一点慢,请耐心等待推送完成,然后就可以在 https://hub.docker.com/
上搜索到我们刚才推送的镜像了。