exec:“ gcc”:在$ PATH中找不到可执行文件

时间:2018-07-16 02:22:57

标签: google-app-engine go google-container-registry

我遇到一个问题,即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

1 个答案:

答案 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之类的东西。