【发布时间】:2020-05-25 17:03:51
【问题描述】:
我已经配置了一个 Firebase 属性文件如下 -
@Bean
Firestore firestore() throws IOException {
InputStream serviceAccount = new FileInputStream("my-karwaan-firebase-adminsdk.json");
GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount);
JSON 文件位于资源文件夹下。
在本地主机上一切正常。 但是在 docker 上,它在运行 docker image 时会抛出
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate
[com.google.cloud.firestore.Firestore]: Factory method 'firestore' threw exception; nested
exception is java.io.FileNotFoundException: my-karwaan-firebase-adminsdk.json
Docker文件内容如下-
# Build Jar File
FROM maven:3.6.3-jdk-8-slim as stage1
WORKDIR /home/app
COPY . /home/app
RUN mvn -f /home/app/pom.xml clean package
# Create an Image
FROM openjdk:8-jdk-alpine
EXPOSE 8080
COPY --from=stage1 /home/app/target/myapp.jar myapp.jar
ENTRYPOINT ["java", "-jar", "myapp.jar"]
我试图给出一个绝对路径,但它在 docker 上不起作用。
【问题讨论】:
-
您要复制到结果图像中的唯一文件是 jar 文件。 Docker 的主要功能之一是文件系统隔离:除非您不遗余力地对其进行配置,否则容器无法查看或访问主机系统上的文件(反之亦然)。
-
这里提供配置的最佳方式是什么?
-
您的
dockerfile的位置在哪里?? -
@DupinderSingh 在项目目录中
-
表示根位置我对吗?
标签: java docker dockerfile