阿里云提供了一个免费的镜像仓库服务,可以使用它去读取Github里的dockerfile完成image构建,并发布到阿里云镜像仓库里去。这能解决构建镜像的时候依赖资源在海外本地构建慢的问题,也能解决发布分享问题(可设置镜像是私有还是公开)。本文是操作过程记录。

另外借助阿里云镜像仓库服务提供的webhook还能实现自动监视github仓库代码变动->触发构建->构建成功后推送消息->接受消息,触发拉取镜像创建容器,这样一整套持续集成流程。当然本文暂不涉及持续集成的内容。

准备工作

登录阿里云容器服务,创建命名空间。一个主账号最多可以创建五个命名空间。

创建镜像

  • 将dockerfile上传到Github。笔者的docker仓库是这个
  • 阿里云容器服务的镜像列表菜单里点击创建镜像仓库。地域可以选择离你近的,这样以后pull会快一点。
  • 绑定Github。选择对应的repo,在构建设置里填入dockerfile的path。这里需要注意的是repo的根是/。比如从GitHub上找到dockerfile文件copy path是docker/13.0/apache/Dockerfile,那么在这里应该填/13.0/apache/
  • 管理->构建->立即构建。这里可以设定使用海外构建,速度能提高N倍。

拉取镜像

镜像生成完毕后,就可以看到拉取镜像地址,如

镜像名称:nextcloud

镜像性质:公开

公网地址:docker pull registry.cn-hangzhou.aliyuncs.com/lefer/nextcloud

经典内网:docker pull registry-internal.cn-hangzhou.aliyuncs.com/lefer/nextcloud

VPC网络:docker pull registry-vpc.cn-hangzhou.aliyuncs.com/lefer/nextcloud

代码仓库:https://github.com/frontc/docker

镜像地域:华东 1

END