当前位置: > > > > Docker Firestore 项目 ID 是必需的
来源:stackoverflow
2024-04-21 16:00:33
0浏览
收藏
积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《Docker Firestore 项目 ID 是必需的》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容
我正在开始使用 docker,并且我有一个简单的映像,我想在其中运行 go 脚本。
这是图片:
from golang:alpine env go111module=on \ cgo_enabled=0 \ goos=linux \ goarch=amd64 workdir /build copy go.* ./ run go mod download copy . ./ run go build -o main . workdir /dist run cp /build/main . cmd ["/dist/main"]
给我带来问题的 go 代码部分在这里:
opt := option.WithCredentialsFile("my-app-firebase-adminsdk.json") app, err := firebase.NewApp(context.Background(), nil, opt) client, err := app.Firestore(context.Background()) if err != nil { log.Fatalln("error initializing app:", err) }
当我运行 go install && my-app
时运行良好
当我尝试在 docker 容器中运行它时,收到以下错误消息。
初始化应用程序时出错:需要项目 id 才能访问 firestore
这必定意味着 my-app-firebase-adminsdk.json
文件未包含在 docker 容器中。
如何解决这个问题?
我尝试在 copy go.* ./
行下添加 copy my-app-firebase-adminsdk.json .
但这没有帮助,最终遇到了同样的问题。
解决方案
事实证明我不必太复杂。当我使用简单的 dockerfile
时,它起作用了,如下所示:
FROM golang:alpine RUN mkdir /app ADD . /app WORKDIR /app RUN go build -o main . CMD ["/app/main"]
理论要掌握,实操不能落!以上关于《Docker Firestore 项目 ID 是必需的》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注公众号吧!