【发布时间】:2020-08-14 18:00:41
【问题描述】:
当我运行docker-compose up --build 时,DB 容器运行良好,但应用容器存在
[error] java.lang.RuntimeException: No main class detected.
[error] at scala.sys.package$.error(package.scala:30)
[error] stack trace is suppressed; run 'last Compile / bgRun' for the full output
[error] (Compile / bgRun) No main class detected.
[error] Total time: 3 s, completed Apr 30, 2020 10:07:31 AM
ERROR: Service 'app' failed to build: The command 'sbt run' returned a non-zero code: 1
我的 Dockerfile:
FROM hseeberger/scala-sbt:8u222_1.3.5_2.13.1
MAINTAINER <HIDDEN>
EXPOSE 8080 8000
WORKDIR /www/app
VOLUME /www/app
RUN ["sbt", "run"]
我的 docker-compose.yml:
version: "3.3"
services:
db:
image: postgres:latest
ports:
- "5432:5432"
app:
build: .
ports:
- "8080:8080"
- "8000:8000"
volumes:
- ..:/www/app
我的 Scala 项目结构:
Main.scala 只包含一个超级简单的Hello World,如您所见:
object Main extends App {
println("Hello from main scala object")
}
如果我在Dockerfile 中使用RUN ["sbt"] 运行容器,则容器保持运行。我通过docker exec -it adcc9897d1fc bash 连接,可以看到/www/app 文件夹是空的(除了sbt 创建的文件夹)。知道为什么它是空的并且不包含项目吗?
【问题讨论】:
标签: scala docker docker-compose sbt dockerfile