2016-09-22 11 views
1

play-javaのドッカー画像を正常に作成しました。しかし、docker run -p 0.0.0.0:9000:9000 egima/play activator runでコンテナを作成しようとすると、sbtは1つの特定の依存関係をダウンロードできません。ログは次のようになります。実行中のプレイドッカーコンテナでsbtがダウンロードに失敗しました

==== Maven2 Local: tried 
    file:/root/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.jar 
==== Apache Repository: tried https://repository.apache.org/content/repositories/releases/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.jar[0m 
    :::::::::::::::::::::::::::::::::::::::::::::: 
    ::    FAILED DOWNLOADS   :: 
    ::^see resolution messages for details^:: 
    :::::::::::::::::::::::::::::::::::::::::::::: 
    :: org.sonatype.sisu#sisu-guice;3.1.0!sisu-guice.jar 
    :::::::::::::::::::::::::::::::::::::::::::::: 

リポジトリには、triedがあります。私はマシンにlocal maven reposを含めるためにall the different variantsをフォローしました。ログから、私がローカルmavenリポジトリに指定した通りにsbtチェックを確認しますが、運はありません。 build.sbt/project/plugins.sbt両方で

マイリゾルバ:

resolvers ++=Seq(
    Resolver.sonatypeRepo("public"), 
    Resolver.mavenLocal, 
    "Apache Repository" at "https://repository.apache.org/content/repositories/releases/" 
    ) 

私も不足している依存関係が存在することを確認するために私の地元のMavenリポジトリをチェックします。何が欠けている?

+0

/root/.m2?なぜrootアカウントを使うのですか? – VonC

+0

@VonC、そのパスは 'sbt'によって' Resolver.mavenLocal'から自動的に変換されます。リンクされた質問で他の人のために働いた道を試しましたが、まだ運がありません。 – egima

+0

確か:$ HOME/.m2に解決されます。そのフォルダは空ですか?いくつかの要素を含んではいけませんか?共有する必要があるローカル.m2フォルダがありますか(-v)? – VonC

答えて

1

VonCDockerfileで次のステップを追加してコメント欄で提案:

RUN ln -s /C/Users/me/.m2 /root/.m2 

私は、このコマンドは、私のホストマシンと/root/.m2に解決解決パスResolver.mavenLocal$MAVEN_HOME間のソフトリンクを確立すべきであると考えています。

これが解決策です。しかし、それを試した後、私は共有パス/c/Users/me(資本Cで見えない、理由を知らない)がVM内部では見えますが、コンテナ内では見えないことに気付きました。だから、Dockerfile内でその行を含めて私を与える:

ln:cannot access /c/Users/me/.m2: No such file or directory 

さらに、でもRUN ls /rootを行うことが、私にはまだこの時点では存在していない、あまりにも先のパスを意味し、同様のエラーを与えるだろう。

私自身の控除は、このフォーラムでよく議論されている方法だと考えられる方法で、ホストパスを宛先パスにマウントすることにあります。私の特定の状況のた​​めにフラグでdocker runの間にマウントを実行して問題を解決しました。私は彼のより多くの情報を必要とするものを約a complete blog postを書かれている

docker run -v /c/Users/me/.m2:/root/.m2 -p 0.0.0.0:9000:9000 egima/play activator run 



これは私が使用される正確なコマンドがあります。

+0

うまくやった。 +1 – VonC

関連する問題