在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历史记录(这可能会耗时较长或需要传输大量数据):
Git fetch –unshallow origin
