App Engine Flex 自定义 - Dockerfile 构建过程中缺少项目文件

App Engine Flex custom - missing project files in Dockerfile build process

我正在尝试使用 App Engine Flex 部署 Java 应用程序,但不幸的是 - 当正在构建 Docker 图像时开始部署时,它似乎是 运行在一些孤立的环境中,而不是在我的本地目录中,包含构建过程所需的所有文件。

我的 app.yaml 文件如下所示:

service: default
env: flex
runtime: custom
handlers:
  - url: .*
    script: auto
manual_scaling:
  instances: 1
network: {}

还有我的 Dockerfile:

FROM openjdk:11-jre-slim
ADD . /app
WORKDIR /app
RUN ls -halt
CMD ["java", "-jar", "app.jar"]

我是 运行 命令:

gcloud auth activate-service-account --key-file mykeyfile.json
gcloud --quiet --project myprojectname app deploy app.yaml

mykeyfile.json 持有具有所有者角色的服务帐户的凭据。

命令 RUN ls -halt 显示,该目录为空 - 没有从我的机器复制任何文件。

如何提供在 Docker 映像构建期间使用的所需文件?

确保部署中缺少的文件未在您的 .gcloudignore 文件中列出。

根据 .gcloudignore documentation:

If there is a file called .gcloudignore in the top-level directory to upload, the files that it specifies will be ignored.

也许在部署期间 files/directories 被错误地添加到 .gcloudignore 文件中,因此通过从 .gcloudignore 文件中删除您希望部署的文件,您将能够这样做。