我遇到一个问题,即App Engine项目将不再(通过gcloud app deploy
)进行远程构建
这从头开始,到此为止没有任何代码更改。不确定是否相关,但这是部署到App Engine Flex环境的go 1.9项目。
我不确定如何在与构建相同的环境中进行测试,因为该错误来自Google的Container Registry
这是Container Registry控制台中的日志
starting build "73f85b4d-7370-41bd-bbb2-bcf42fc38873"
FETCHSOURCE
Fetching storage object: gs://staging.[project].appspot.com/us.gcr.io/[project]/appengine/default.1ed3c690ead06f27aa651a30fab342611:latest#1531698266413753
Copying gs://staging.[project].appspot.com/us.gcr.io/[project]/appengine/default.1ed3c690ead49f731806f27aa630fab342611:latest#1531698266413753...
Operation completed over 1 objects/1.7 MiB.
BUILD
Starting Step #0
Step #0: Pulling image: gcr.io/gcp-runtimes/go1-builder@sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db
Step #0: sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db: Pulling from gcp-runtimes/go1-builder
Step #0: Digest: sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db
Step #0: Status: Downloaded newer image for gcr.io/gcp-runtimes/go1-builder@sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db
Step #0: exec: "gcc": executable file not found in $PATH Finished
Step #0 ERROR ERROR: build step 0 "gcr.io/gcp-runtimes/go1-builder@sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db" failed: exit status 2
答案 0 :(得分:1)
您似乎正在使用容器gcr.io/gcp-runtimes/go1-builder作为构建步骤。看着source in GitHub,我发现自六月末以来没有任何更新。我在Dockerfile中看到FROM
指令中的基本映像是gcr.io/google-appengine/debian9:latest
,并且对该映像的查看显示没有安装gcc
。我没有Dockerfile
安装gcc的任何步骤,并且查看您的构建步骤映像可以确认它不存在:
~$ docker run --rm -t -i --entrypoint /bin/bash gcr.io/gcp-runtimes/go1-builder@sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db -- which gcc
Unable to find image 'gcr.io/gcp-runtimes/go1-builder@sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db' locally
sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db: Pulling from gcp-runtimes/go1-builder
e154cec6816f: Pull complete
<pulls elided>
Digest: sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db
Status: Downloaded newer image for gcr.io/gcp-runtimes/go1-builder@sha256:c62ac3fbec31ddec70601d6c5b44d07063bcff6a823bdcf5e0bbaa9d3799d1db
~$
也许已经安装了基础debian9
映像的早期版本,您可以深入了解历史记录。但看来go1-builder
图像上最近没有更改来删除gcc。
如果您需要gcc
,则始终可以将构建应用程序与部署应用程序分开。通过cloudbuild.yaml
用自己的gcloud container builds submit
构建,然后使用gcloud app deploy --image-url=...
部署构建的容器在完全控制构建的情况下,您始终可以基于go-builder
映像并安装其他工具在使用Docker构建最终的应用程序容器之前,您还需要gcc
之类的东西。