我刚刚为新的计算引擎 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 使图像可用之前完成?
答案 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 正在运行