Как получить доступ к файлам ресурсов приложения, хранящимся в 'src / main / resources / someFolder' в контейнере Docker? - PullRequest
0 голосов
/ 24 мая 2018

Я работаю над сервисом на основе gradle, который должен работать в Docker-контейнере в кластере kubernetes.Локально я могу получить доступ к ресурсам, некоторым json-файлам, используемым для инициализации CouchDb.После того, как я собрал и развернул службу в Docker, файлы перестали быть доступными, и я получил исключение «файл не найден» и не смог запустить службу.Я вижу, что моя папка находится в сгенерированном банке, но я не могу получить доступ к файлам.Я использую его следующим образом:

DesignDocument design = DesignDocumentManager.fromFile("design-documents/documents.json");

, полученное из API клиента IBM Cloudant Java .Я пробовал разные версии с пути, то есть с косой чертой или абсолютный путь от проекта.

1 Ответ

0 голосов
/ 24 мая 2018

API не имеет альтернативы File, который является файлом операционной системы.Поэтому используйте временный файл.

InputStream in = getClass().getResourceAsStream(
        "/design-documents/documents.json");
Path tempPath = Files.createTempFile("desdoc-", ".json");
Files.copy(in, tempPath);
DesignDocument design = DesignDocumentManager.fromFile(tempPath.toFile());
Files.delete(tempPath);

Обратите внимание на ведущий / для Class.getResource (AsStream).

...