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

问题描述

我正在尝试使用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

如果顶级目录中有一个名为.gcloudignore的文件要上传,则它指定的文件将被忽略。

也许在部署过程中,文件/目录被错误地添加到了.gcloudignore文件中,所以通过从.gcloudignore文件中删除您想要部署的文件,您将能够这样做。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...