等待gcloud docker - 推

时间:2016-12-20 10:42:10

标签: docker gcloud

我在nodejs中构建一个部署脚本,其中一部分是通过require('child_process').spawn(...);调用gcloud cli来推送已经构建的docker镜像。我执行以下命令:

gcloud docker -- push myImage

一切都很好,图片上传。但问题是gcloud docker打开了一个新进程来推送我的图像和我生成的进程,在完成图像推送之前关闭。

问题是,我想直接在本地删除构建的图像。

我一直在寻找gcloud docker documentation,但我没有看到任何争论。

有没有办法知道上传图片的过程已经完成?

编辑: 我确实发现a way只能通过docker来实现它,但我想要一个通用的解决方案(都在windows和linux环境下工作)

2 个答案:

答案 0 :(得分:0)

在对Google文档进行了一些更多研究之后,我找到了this authentication page

他们告诉您创建一个服务帐户并使用您获得的json私钥作为令牌使用docker login。这样,您不需要为自动服务提供oauth令牌,但您可以使用此json密钥。

答案 1 :(得分:0)

您可以通过运行以下命令检查所有图像: [sudo docker图片] 记下标记和删除图像时将使用的“图像ID”。

构建docker映像时,请先标记它,然后运行以下命令: [docker标记“ IMAGE ID” gcr.io/{Google容器注册表路径}:{版本}]

您可以通过运行以下命令来推送任何构建的图像: [gcloud docker-push gcr.io/{google容器注册表路径}:{version}]。

推送时,您会注意到容器列表已推送到您的Google Container注册表中,请参见以下示例:

$ sudo gcloud docker-推送gcr.io/{google容器注册表路径}:{version}

此推送指的是存储库[gcr.io/{google容器注册表路径}] 43d35f91f441:=================>已推送 3b93beb428bf:图层已经存在 629fa6a1373d:=================>已推送 0f82335d5733:层已存在 c216b39a9ab6:层已存在 ccbd0c2af699:层已存在 38788b6810d3:层已存在 cd7100a72410:层已存在 v1:摘要:sha256:************************************************ ********************大小:1992

您可以通过运行以下命令检查所有图像: [sudo docker图片]

记下您需要删除的图像的“图像ID”。 运行命令: [sudo docker rmi“ IMAGE ID”]。

如果不允许删除该映像,则必须停止仍在运行的容器并修剪docker [sudo docker容器停止“容器ID”] [sudo docker容器修剪]

然后您可以删除图像。