如何在Docker容器中运行一个Scala应用程序?

在Docker容器中运行一个Scala应用程序,可以通过以下步骤进行:

  1. 编写Scala应用程序:
scala
object HelloWorld extends App {
  println("Hello World!") 
}

保存为HelloWorld.scala。

  1. 构建Dockerfile:
Dockerfile
FROM openjdk:8-jdk-alpine AS build
WORKDIR /app
COPY HelloWorld.scala .
RUN scalac HelloWorld.scala

FROM openjdk:8-jre-alpine 
WORKDIR /app
COPY --from=build /app/HelloWorld.class .  
ENTRYPOINT ["```", "HelloWorld"]

此Dockerfile采用多阶段构建。第一阶段基于OpenJDK编译Scala应用程序,第二阶段仅复制构建好的class文件,并指定为Java入口点。

  1. 构建镜像:
docker build -t scala-app .
  1. 运行容器:
docker run scala-app

输出:

Hello World!
  1. 在Docker Compose中定义应用:
yaml
version: '3' 
services:
  scala-app:
    build: .
    image: scala-app
docker-compose run scala-app

可以一键运行应用。