2

我正在尝试将我的 appengine go 应用程序部署到托管 vm,但我不断收到此错误

Pulling image: google/appengine-go
Traceback (most recent call last):
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 170, in <module>
    main()
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 166, in main
    _cli.Execute()
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 385, in Execute
    post_run_hooks=self.__post_run_hooks, kwargs=kwargs)
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/calliope/frontend.py", line 274, in _Execute
    pre_run_hooks=pre_run_hooks, post_run_hooks=post_run_hooks)
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/calliope/backend.py", line 928, in Run
    result = command_instance.Run(args)
  File "/home/honeybooboo/google-cloud-sdk/lib/googlecloudsdk/appengine/app_commands/setup_managed_vms.py", line 39, in Run
    args.image_version)
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/images/pull.py", line 54, in PullBaseDockerImages
    util.PullSpecifiedImages(docker_client, image_names, version, bucket)
  File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/images/util.py", line 232, in PullSpecifiedImages
    'Error pulling {image}: {e}'.format(image=image_name, e=e))
googlecloudsdk.appengine.lib.images.util.DockerPullError: Error pulling google/appengine-go: 404 Client Error: Not Found ("No such id: localhost:49156/google/appengine-go")

我的码头工人版本

Client version: 1.3.0
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): c78088f
OS/Arch (client): linux/amd64
Server version: 1.3.0
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): c78088f

我的 Gcloud 版本

谷歌云 SDK 0.9.37

app 2014.11.18
app-engine-go-linux-x86_64 1.9.15
app-engine-java 1.9.15a
app-engine-managed-vms 2014.11.03
app-engine-python 1.9.15a
app-engine-python-extras 1.9.6
bq 2.0.18
bq-nix 2.0.18
compute 2014.11.25
core 2014.11.25
core-nix 2014.10.20
dns 2014.11.06
gae-go 2014.11.25
gae-go-nix 2014.09.10
gae-python 2014.05.06
gcutil 1.16.5
gcutil-nix 1.16.5
gsutil 4.6
gsutil-nix 4.6
preview 2014.11.18
preview-extensions-linux-x86_64 4.1
sql 2014.11.18
4

1 回答 1

3

抱歉,您遇到了问题。我们知道这个问题,并且已经在下一个 SDK 版本中修复(一周后发布)。作为临时解决方法,请尝试运行

gcloud --verbosity debug preview app setup-managed-vms

(并在选项列表中选择 Go)几次(直到成功)以获取 go 运行时的基本映像。

另一种选择是尝试从容器产品中提取基本 go 映像(google/appengine-go)

使用https://registry.hub.docker.com/u/google/docker-registry/的存储桶google/docker-registry

拉动 google/docker-registry

docker pull google/docker-registry

获取您的凭据

gcloud auth print-refresh-token

存储您的刷新令牌和存储桶(在 registry-params.env 文件中的容器产品)

cat registry-params.env
GCP_OAUTH2_REFRESH_TOKEN=your-refresh-token
GCS_BUCKET=containers-prod

运行注册表

docker run -d --env-file=registry-params.env -p 5000:5000 google/docker-registry

拉取图片

docker pull localhost:5000/google/appengine-go

重新标记图像

docker tag localhost:5000/google/appengine-go google/appengine-go

删除包含注册表名称的旧标签

 docker rmi localhost:5000/google/appengine-go

检查你的图像在那里。你会看到类似的东西

docker images | grep google

你会看到类似的东西

google/appengine-go                  latest              35ef8e2a9c5e        13 days ago         206 MB

不要忘记停止您的注册表容器

docker ps
docker stop <CONTAINER ID>
于 2014-12-03T06:26:22.873 回答