我有一个来自的Go Dockerfilehttps://cloud.google.com/run/docs/quickstarts/build-and-deploy只需更改一行,这样我就可以知道我运行的是什么版本:
RUN go build -ldflags "-X main.Version=$(git describe --always)" -mod=readonly -v -o server
当我通过docker build .
在本地构建并进行测试时,git describe
没有问题,但是如果我提交要通过gcloud builds submit
构建的Docker,它会失败:
fatal: not a git repository (or any of the parent directories): .git
我如何构建我的Cloud Run docker映像,使其具有此Git版本参考?
执行gcloud builds submit
时,不会将所有项目文件发送到Cloud Build。该命令将考虑您的.gitignore
文件和.gcloudignore
文件。如果您没有.gcloudignore
,除了.gitignore
文件指令外,还会强制执行默认行为。更多详情点击此处
因此,要解决此问题,请创建一个.gcloudignore
文件,该文件仅包含要为构建排除的文件。因此,让.git/
(不要将其添加到文件中(,它就会工作。