我已经配置了一个Firebase属性文件,如下所示-
@Bean
Firestore firestore() throws IOException {
InputStream serviceAccount = new FileInputStream("my-karwaan-firebase-adminsdk.json");
GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount);
JSON文件位于resources文件夹下。
在本地主机上一切正常。但在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上不起作用。
目录结构如下-x1c 0d1x
1条答案
按热度按时间jdzmm42g1#
请参阅
dockerfile
中的基本问题是您正在设置
WORKDIR
,而COPY
您在/home/app
中说COPY
,因此如果您设置WORKDIR
,则意味着任何RUN
,CMD
,ADD
,COPY
或ENTRYPOINT
命令将在指定的工作目录中执行。为了避免混淆,请尝试如下
试试这个:)
PS:一旦你启动容器,请执行
exec
,并检查所有项目的详细信息是否在正确的目录中,mvn build
是否正在使用正确的名称构建jar