基于 docker 容器进行修改并成新镜像
0.背景和需求
背景:
有时会需要使用 battery-historian 解析日志,很久之前使用以下命令本地部署过一次。
1 |
|
- -v /usr/share/zoneinfo:/usr/share/zoneinfo:设置为本地时区。
- 8888:是端口号,访问 http://127.0.0.1:8888/ 或本机 ip:8888 就可以使用 Battery Historian 了。
- >>~/battery_historian.log 2>&1 &:任何输出追加写入文件,并后台运行。
需求:
gcr.io/android-battery-historian
这个镜像存在一些问题,需要修改部分代码。
- 问题一:由于 bugreport 数据类型/格式不对,偶现各种解析错误,需要做一些新的适配和规避。
- 问题二:其中使用的部分 js 来自 cdn,偶尔网络抽风,无法加载,需要将 cdn 资源本地储存,并替换链接。
按道理可以直接修改 battery-historian 源码并编译,但这个项目已经多年没人维护,其中使用的各种依赖版本都非常老(尤其是前端的部分),折腾一通勉强跑起来了,由于编译环境差异还是有些日志解析的有问题。
所以只能退而求其次,基于 gcr.io/android-battery-historian/stable:3.0
来修改了。
1.修改容器
进入容器查看文件
1 |
|
将 docker 容器中的文件,拷贝到本地进行修改
1 |
|
将修改好的文件,拷贝到 docker 容器中
1 |
|
重启容器
1 |
|
2.生成镜像
基于容器生成新的镜像
1 |
|
3.分享
保存镜像,方便分享给其他人
1 |
|
其他人拿到镜像,加载镜像并启动容器
1 |
|
基于 docker 容器进行修改并成新镜像
https://www.aimtao.net/modified-container/