Docker 需要 Firestore 项目 ID

Docker Firestore project id is required

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

error initializing app: project id is required to access 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"]