登录
首页 >  Golang >  Go问答

Docker Firestore 项目 ID 是必需的

来源:stackoverflow

时间:2024-04-21 16:00:33 123浏览 收藏

积累知识,胜过积蓄金银!毕竟在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 是必需的》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>