需要Docker Firestore项目ID

问题描述 投票:0回答:1

我开始使用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容器中运行它时,出现以下错误消息。

初始化应用程序时出错:访问Firestore需要项目ID

这必须表示my-app-firebase-adminsdk.json文件未包含在Docker容器中。

我该如何解决?

我曾尝试在COPY my-app-firebase-adminsdk.json .行下添加COPY go.* ./,但这没有帮助,最终出现了相同的问题。

firebase docker go google-cloud-firestore firebase-admin
1个回答
1
投票

事实证明,我不必很复杂。当我使用如下的简单Dockerfile时,它起作用了:

FROM golang:alpine

RUN mkdir /app

ADD . /app

WORKDIR /app

RUN go build -o main .

CMD ["/app/main"]

© www.soinside.com 2019 - 2024. All rights reserved.