GCR.io 竞争条件?

时间:2021-01-08 13:59:45

标签: docker google-cloud-platform google-container-registry

我刚刚为新的计算引擎 VM 部署完成了一组命令:

docker build . -t $GCR_ADDRESS
docker push $GCR_ADDRESS

gcloud compute instances create $APP_ID --image-project=cos-cloud --image-family=cos-77-lts --machine-type=e2-micro --zone=us-central1-a --metadata=GCR_ADDRESS=$GCR_ADDRESS --metadata-from-file=startup-script=./start.sh --tags=http-server,https-server --scopes=default,bigquery,compute-rw --address=$APP_ID-ip

它失败了,因为启动脚本无法运行这个:

docker run --rm gcr.io/my-project/my-app:latest

有错误:

docker: Error response from daemon: manifest for gcr.io/my-project/my-app:latest not found: manifest unknown: Failed to fetch "latest" from request
t "/v2/my-project/my-app/manifests/latest"

我已通过 ssh 连接到此实例并再次运行 docker run --rm gcr.io/my-project/my-app:latest。它奏效了。

这非常令人不安。这是否意味着 docker push 命令在 gcr.io 使图像可用之前完成?

1 个答案:

答案 0 :(得分:0)

对我来说,这按预期工作。

$ gcloud compute instances create test-so00 --image-project=cos-cloud --image-family=cos-77-lts --machine-type=e2-micro --zone=us-central1-a --metadata=GCR_ADDRESS=gcr.io/xxxxxx-projects-xxxxxx/alpine:latest --metadata-from-file=startup-script=./start.sh --tags=http-server,https-server --scopes=default,bigquery,compute-rw

已创建 [https://www.googleapis.com/compute/v1/projects/xxxxxxxx-projects-xxxxxx/zones/us-central1-a/instances/test-so00]。

名称区域 MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP 状态 test-so00 us-central1-a e2-micro 10.xxx.0.31 35.224.xx.xxx 正在运行