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

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

  1. 编写Clojure应用程序:
clojure
(println "Hello, World!")

保存为app.clj。

  1. 构建Dockerfile:
Dockerfile
FROM clojure:lein-2.9.1
WORKDIR /app
COPY app.clj . 
RUN lein uberjar 
CMD ["```", "-jar", "target/uberjar.jar"]

此Dockerfile构建基于clojure:lein-2.9.1的镜像,将app.clj复制到镜像,使用lein uberjar创建FAT JAR,并指定“` -jar target/uberjar.jar为入口点。

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

输出:

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

可以一键运行应用。