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"]
我开始使用 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"]