FileNotFoundException при работе docker изображение - PullRequest
0 голосов
/ 25 мая 2020

Я настроил файл свойств Firebase следующим образом -

@Bean
Firestore firestore() throws IOException {
    InputStream serviceAccount = new FileInputStream("my-karwaan-firebase-adminsdk.json");
    GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount);

JSON файл присутствует в папке ресурсов.

Все работает нормально на локальном хосте. Но на docker он бросает во время работы docker изображение

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.

Структура каталогов следующая - enter image description here

1 Ответ

0 голосов
/ 25 мая 2020

См. Основную проблему c в вашем dockerfile:

Вы устанавливаете WORKDIR, тогда в то время как COPY вы сказали COPY в /home/app, поэтому, если вы установите WORKDIR, тогда это означает, что любая команда RUN, CMD, ADD, COPY или ENTRYPOINT будет выполнена в указанном рабочем каталоге.

enter image description here

Чтобы избежать путаницы, попробуйте следующее:

# Build Jar File
FROM maven:3.6.3-jdk-8-slim as stage1
WORKDIR /home/app
#COPY FROM PROJECT ROOT DIR TO WORKING ROOT DIR i.e: /home/app 
COPY . .
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"]

Попробуйте это:)

PS: После запуска контейнера, пожалуйста, сделайте exec и проверьте, все ли детали проекта находятся в нужном каталоге или нет, и mvn build строит банку с правильным именем или нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...