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从源代码存储库中提取分支时,它将执行浅表克隆(仅指定分支的尖端)。这样做的好处是可以最大程度地减少从存储库中传输所需的数据量,并加快构建速度,因为它仅提取所需的最少代码。
因此,如果您需要执行依赖于其他分支的自定义操作,则除非执行以下操作之一,否则无法签出该分支:
通过执行以下操作,可以对目标分支进行浅层检出:
Git fetch origin branch:Mytargetbranch –depth 1
您还可以取消整理克隆,使用获取上的标志来获取整个Git历史记录(并可能花费很长时间/移动大量数据)–unshallow:
Git fetch –unshallow origin