Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于docker/base下镜像构建的问题,canal/osbase:v1存在问题,以及对构建时的一些改进。 #3397

Closed
Jump-Boy opened this issue Mar 5, 2021 · 0 comments
Milestone

Comments

@Jump-Boy
Copy link
Contributor

Jump-Boy commented Mar 5, 2021

当前使用canal版本

1.1.5

问题描述

在构建docker base过程中,主要是“canal/osbase:v1”构建失败,现象如下:

终端运行

cd canal/docker
chomd +x build.sh
./build.sh base

会收到如下类似错误

[91mError: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
[0mYumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt

错误信息可能略有不同,但大致意思都是找不到“repomd.xml”。

原因分析

base镜像基于centos:6.10,构建base过程中需要yum安装一些基础工具,但由于yum现已不再支持低版本的centos安全更新,所以导致了yum异常,最终构建失败。具体原因由于篇幅问题,我单独总结了一下blog,可见解决低版本CentOS中使用yum异常问题,(考虑避免无端的系统兼容性问题,就在不改变centos版本基础上)解决这个问题,主要办法就是修改yum配置,更换可用镜像源即可,也写在文章中了。

优化内容

顺便优化了下,可能因镜像源慢而导致的一些问题。

  1. yum配置了多镜像源
  2. 禁用yum-fastestmirror插件
  3. 增加镜像源访问超时时间阈值

因篇幅问题,顺便也总结了blog,详细说明见CentOS 6使用Yum可能存在的问题以及对应优化

额外修改内容

同样是构建base(canal/osbase:v1)的问题,此问题发生在下载jdk8时,因为现dockerfile中的${DOWNLOAD_LINK},即 “http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm” 已不可用,在wget download时,会“404 not found”,导致安装jdk失败。

现jdk8资源已更新,"https://download.oracle.com/otn-pub/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/jdk-8u281-linux-x64.rpm"


上述问题,已提交为一个pr(望大佬审核)

测试

为了排除此次pr修改内容引入其他问题,本人经过多次本地构建以及运行测试。测试情况如下

 ✘ humh@MacBook-Pro ~/canal/docker fix_docker_base ±  echo $(date); ./build.sh base > ~/tmp/canal/build_base_v1 && echo $(date)
2021年 3月 4日 星期四 16时28分03秒 CST
2021年 3月 4日 星期四 16时44分33秒 CST

再无任何代理情况下,不考虑centos:6.10拉取时长,构建时长在15min左右,有时也会在20-30min,95%的耗时在下载jdk8.rpm,取决网速。

构建后镜像大小在1G左右。

后续依次构建也无误,“canal/osbase:v1” -> “canal/osbase:v2” -> “canal/canal-server:latest”

分别构建时长如下:

 humh@MacBook-Pro ~/canal/docker fix_docker_base ±  echo $(date); ./build.sh base_v2 > ~/tmp/canal/build_base_v2 && echo $(date)
2021年 3月 4日 星期四 17时20分49秒 CST
2021年 3月 4日 星期四 17时25分25秒 CST

 humh@MacBook-Pro ~/canal/docker fix_docker_base ±  echo $(date); ./build.sh > ~/tmp/canal/build_server && echo $(date)
2021年 3月 4日 星期四 17时39分12秒 CST
2021年 3月 4日 星期四 17时40分29秒 CST

具体镜像大小如下:

 humh@MacBook-Pro ~/canal/docker fix_docker_base ±  docker image ls
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
canal/canal-server                                   latest              3ed48be6d6f6        17 hours ago        1.18GB
canal/osbase                                         latest              78755d1f0179        18 hours ago        1.02GB
canal/osbase                                         v2                  78755d1f0179        18 hours ago        1.02GB
canal/osbase                                         v1                  5ff452f09131        18 hours ago        1.01GB
centos                                               centos6.10          48650444e419        24 months ago       194MB

运行run.sh,起canal-server,canal.log部分如下

2021-03-04 19:29:47.555 [main] INFO  com.alibaba.otter.canal.deployer.CanalLauncher - ## set default uncaught exception handler
2021-03-04 19:29:47.613 [main] INFO  com.alibaba.otter.canal.deployer.CanalLauncher - ## load canal configurations
2021-03-04 19:29:47.635 [main] INFO  com.alibaba.otter.canal.deployer.CanalStarter - ## start the canal server.
2021-03-04 19:29:47.729 [main] INFO  com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[172.17.0.2(172.17.0.2):11111]
2021-03-04 19:29:49.945 [main] INFO  com.alibaba.otter.canal.deployer.CanalStarter - ## the canal server is running now ......
@Jump-Boy Jump-Boy closed this as completed Mar 5, 2021
@Jump-Boy Jump-Boy reopened this Mar 5, 2021
@Jump-Boy Jump-Boy changed the title 关于docker 关于docker/base下镜像构建的问题,canal/base:v1 存在问题,以及对构建时的一些改进。 Mar 5, 2021
@Jump-Boy Jump-Boy changed the title 关于docker/base下镜像构建的问题,canal/base:v1 存在问题,以及对构建时的一些改进。 关于docker/base下镜像构建的问题,canal/osbase:v1存在问题,以及对构建时的一些改进。 Mar 5, 2021
@agapple agapple closed this as completed Apr 16, 2021
@agapple agapple added this to the v1.1.5 milestone Apr 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants