云计算核心技术Docker教程:Docker Hub构建钩子和源存储库

云计算核心技术Docker教程:Docker Hub构建钩子和源存储库
2021年01月26日 17:49 TechWeb

原标题:云计算核心技术Docker教程:Docker Hub构建钩子和源存储库

Docker Hub允许您在钩子文件中或从自动构建界面(然后可以在钩子中引用)中定义构建环境变量。

在以下示例中,我们定义了一个构建钩子,该构建钩子使用docker build参数CUSTOM根据我们使用Docker Hub构建设置定义的变量的值来设置变量。$DOCKERFILE_PATH是一个变量,我们为其提供了要构建的Dockerfile$IMAGE_NAME的名称,并且是正在构建的映像的名称。

docker build --build-arg CUSTOM=$VAR -f $DOCKERFILE_PATH -t $IMAGE_NAME .

警告:hooks/build文件会覆盖构建器使用的基本docker build命令,因此您必须在挂钩中包含类似的构建命令,否则自动构建会失败。

推送到多个存储库

默认情况下,构建过程仅将映像推送到配置了构建设置的存储库。如果需要将同一映像推送到多个存储库,则可以设置一个post_push挂钩以添加其他标签并推送到更多存储库。

docker tag $IMAGE_NAME $DOCKER_REPO:$SOURCE_COMMIT

docker push $DOCKER_REPO:$SOURCE_COMMIT

源存储库/分支克隆

当Docker Hub从源代码存储库中提取分支时,它将执行浅表克隆(仅指定分支的尖端)。这样做的好处是可以最大程度地减少从存储库中传输所需的数据量,并加快构建速度,因为它仅提取所需的最少代码。

因此,如果您需要执行依赖于其他分支(例如post_push钩子)的自定义操作,则除非执行以下操作之一,否则无法签出该分支:

通过执行以下操作,可以对目标分支进行浅层检出:

git fetch origin branch:mytargetbranch --depth 1

您还可以“取消整理”克隆,使用获取上的标志来获取整个Git历史记录(并可能花费很长时间/移动大量数据)--unshallow:

git fetch --unshallow origin

新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片