不知不觉中,我已从项目中删除以下存储桶
- (void)perform{
RootViewController *rootController = self.sourceViewController;
MasterViewController *previousMasterViewController = (MasterViewController *)rootController.collapseControllerForMaster.detailViewController;
UIView *snapshotView = [previousMasterViewController.navigationController._outermostNavigationController.view snapshotViewAfterScreenUpdates:NO];
MasterViewController *masterController = (MasterViewController *)[self.destinationViewController topViewController];
rootController.collapseControllerForMaster.detailViewController = masterController;
UIView *view = [previousMasterViewController.deleteBarButtonItem valueForKey:@"view"];
CGRect rect = [view convertRect:view.frame toView:masterController.view.window];
[super perform];
[masterController.navigationController._outermostNavigationController.view addSubview:snapshotView];
[CATransaction flush];
[UIView beginAnimations:@"delete" context:NULL];
[UIView setAnimationTransition:103 forView:masterController.navigationController._outermostNavigationController.view cache:YES];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationPosition:CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect))];
[snapshotView removeFromSuperview];
[UIView commitAnimations];
}
这已删除了gcr中的所有图像。让我知道上面的存储桶是否是gcr图像的存储位置,还是其他内容?
此外,当我创建新图像并将其推送到gcr时,gcr控制台中所有已删除的图像都已恢复。但是,每当我尝试拉出任何旧图像时,它都会引发“未知斑点”错误。
答案 0 :(得分:1)
是的,这些存储桶是构建和存储docker容器工件的地方。(工件是构建步骤的结果,加起来就是一个图像)
然后,它们会被Google容器注册表(即gcr.io
)引用,但它们仍将位于您的存储桶中。
由于您删除了存储桶及其内容,因此您将在构建的映像中丢失旧的构建步骤,这就是为什么您会收到error pulling image configuration: unknown blob
错误消息的原因。
例如,我在this documentation之后上传了新图像,然后删除了artifacts.<PROJECT-ID>.appspot.com
存储桶。然后,使用标签(我使用quickstart-image:tag1
并以这种方式拉动它时,重新上传了它:
docker pull gcr.io/wave16-joan/quickstart-image:latest
我收到了error pulling image configuration: unknown blob
错误消息,因为它缺少我先前构建中已经执行的步骤。
但是,这样做:
docker pull gcr.io/wave16-joan/quickstart-image:tag1
拉我的照片没有任何问题。
关于您的第二个问题,我相信您在Container Registry中看到的是对已删除图像的引用的原因,这是因为GCR仍在保存对构建这些图像的步骤的引用,但是由于它们已被删除,他们不能被拉。