Maven-Wrapper в jHipster внутри Docker-Container: FileNotFoundException

Я установил докер внутри виртуальной машины, работающей на lubuntu 16.4. После этого я вытащил контейнер jhipster/jhipster в соответствии с этим руководством. Доступ к нему с помощью docker exec -it jhipster bash работает нормально, а также процесс создания приложения через yo jhipster. Но когда я хочу запустить его с помощью оболочки maven через ./mvnw, возникает следующая ошибка (через чуть менее секунды):

Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip

Exception in thread "main" java.io.FileNotFoundException: /home/jhipster/.m2/wrapper/dists/apache-maven-3.3.9-bin/2609u9g41na2l7ogackmif6fj2/apache-maven-3.3.9-bin.zip.part (No such file or directory)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
    at org.apache.maven.wrapper.DefaultDownloader.downloadInternal(DefaultDownloader.java:69)
    at org.apache.maven.wrapper.DefaultDownloader.download(DefaultDownloader.java:60)
    at org.apache.maven.wrapper.Installer.createDist(Installer.java:64)
    at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:121)
    at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:50)

Внутри контейнера, похоже, не установлен maven, но для этого и нужен mvnw, верно? В любом случае, установить maven самостоятельно (внутри контейнера) невозможно из-за отсутствия прав su (sudo не найден, su работает «только с терминала»).

Я не понимаю, что здесь не так... Вы можете помочь?

PS: Каталог .m2 пуст.


person Florian Gössele    schedule 13.07.2016    source источник
comment
Вы правы для mvnw. Это может быть связано с брандмауэром в вашей сети. Вам не нужно быть sudoer, чтобы установить maven вручную, просто скопируйте его в подкаталог /home/jhipster и добавьте его в свой путь, как описано на сайте maven. Вы пытались запустить wget или curl на repo1. maven.org/maven2/org/apache/maven/apache-maven/3.3.9/   -  person Gaël Marziou    schedule 13.07.2016


Ответы (1)


Я предполагаю, что вы сопоставили свою папку maven в виртуальной машине с папкой /home/jhipster/.m2 в контейнере докера в соответствии с инструкциями учебника. Я обнаружил, что если на виртуальной машине еще не был установлен maven, папка ~/.m2 в виртуальной машине была создана с владельцем root. Не уверен, как и почему. В результате у пользователя jhipster в контейнере docker не было разрешения на запись в папку /home/jhipster/.m2. Вы сможете исправить это, изменив владельца папки (из виртуальной машины) на пользователя, которого вы используете для запуска докера.

person Glen Worsley    schedule 19.11.2016