build 指定的镜像
- 根据用户环境判断,如有需要,先手动制作一个基础镜像,预先配置调通yum等基础功能。
- 将安装文件解压放到一个目录中,多文件快速解压命令见备注。
- 运行工具,制作镜像。工具会自动build和检查。最终输出push命令。如果制作失败,会输出失败列表。
- 复制输出的命令执行push镜像即可。
工具会做如下操作
- 编译 Dockerfile 模板
- 初始化 build 目录,解析模板中需要COPY的文件到 build 目录。
- build
- 检查镜像
- 输出push命令
将企业服务安装包的镜像解压到指定目录。 这个目录用于参数 --mirror-dir
ls tidb-enterprise-server-v6.1.1-linux-amd64/*.tar.gz | xargs -P4 -i tar xzvf '{}' -C mirror
建议将日志输出到文件,这样标准输出的信息可以直接复制执行。 --dockerfile-template 支持通配符或多个文件
python build.py --mirror-dir /tmp/build/mirror/ --work-path /tmp/worker/ --dockerfile-template dockerfile/tikv --base-image gcr.io/pingcap-public/pingcap/alpine-glibc:alpine-3.14.3 --image-namespace "pingcap.com/test" --image-version v6.1.1 --log-file=/tmp/build.log
- 历史镜像制作的遗留问题,lightning镜像中会有br工具,请注意。
- 如用户有特殊配置,比如yum repo等,请先制作base镜像,再以base镜像作为基础制作组件镜像。
- check_image 中,通过运行镜像判断镜像是否可用,passCodes可根据情况更新,默认返回值为0。
如果重复build同tag名的镜像,新的镜像会把旧的镜像取代。如果制作镜像的机器空间满了,可以清理下。 如果镜像在使用,则不会被清理。
docker rmi `docker images|grep none|awk '{print $3}'`