2016-01-21 12 views
6

Tôi có một Play đơn giản! ứng dụng không có gì đặc biệt xảy ra trong build.sbt;SBT: Độ phân giải và thất bại chậm khi thực hiện các bản dựng trong vùng chứa Docker

name := """project-name""" 

version := "1.0-SNAPSHOT" 

lazy val root = (project in file(".")).enablePlugins(PlayScala) 

scalaVersion := "2.11.6" 

libraryDependencies ++= Seq(
    jdbc, 
    javaJdbc, 
    javaEbean, 
    "mysql" % "mysql-connector-java" % "5.1.38", 
    cache, 
    ws, 
    "com.googlecode.libphonenumber" % "libphonenumber" % "7.1.0" 
) 

// string metrics 
libraryDependencies += "com.rockymadden.stringmetric" %% "stringmetric-core" % "0.27.4" 

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases" 

Và bên trong một Dockerfile Tôi đang cố gắng để xây dựng một thực thi của ứng dụng này thông qua activator dist, sbt dist hoặc activator stage lệnh.

Tất cả các công việc trên hoàn hảo khi tôi chạy nó trên máy tính của mình. Tuy nhiên, khi tôi chạy chính xác các lệnh giống nhau từ bên trong một thùng chứa docker, tôi nhận thấy;

  • SBT mất rất nhiều thời gian để giải quyết sự phụ thuộc, nó rất chậm thông qua danh sách phụ thuộc.
  • Việc xây dựng không thành công với những điều sau đây: sbt.ResolveException: download failed: org.scalaz#scalaz-core_2.10;7.0.2!scalaz-core_2.10.jar(bundle)

Tôi nghi ngờ nếu điều này là một lỗi mà đã làm với SBT hoặc một cái gì đó cụ thể để đựng Docker. Có ai nhìn thấy điều này trước đây không?

+0

Phiên bản SBT bạn đang sử dụng? Phiên bản kích hoạt nào? – marcospereira

+0

Ngoài ra, nó hoạt động bên ngoài docker? – marcospereira

+0

@marcospereira cảm ơn đã dành thời gian để trả lời điều này, nhưng đây là những gì 'sbt about' kết quả đầu ra từ trong container docker:' Phát hiện sbt phiên bản 0.13.8 Không thể tìm thấy sbt launcher 0.13.8 Vui lòng tải xuống: Từ http : //typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.8/sbt-launch.jar Tới /root/.sbt/.lib/0.13.8/sbt -launch.jar' Và có, nó hoạt động bên ngoài docker hoàn hảo. – Ashesh

Trả lời

1

Mounting the .ivy2 and .sbt directories in the container tăng tốc độ biên dịch đáng kể:

-v ~/.sbt:/root/.sbt -v ~/.ivy2:/root/.ivy2 
+0

Cảm ơn bạn đã trả lời - nhưng đó không phải là một lựa chọn khả thi vì điều này sẽ không hoạt động đối với các bản dựng tự động. – Ashesh

+0

Nó hoạt động trên CI của tôi. Bạn đã thử à? – 030

+0

Tôi chưa thử, không. – Ashesh

Các vấn đề liên quan