Coursier を用いた Scala 開発環境構築用 Dockerfile の概要と動作確認

heroImage

1. はじめに

近年、Scala の開発環境の構築には Coursier の利用が一般的です。しかし、執筆時点では公式の Docker イメージが公開されていないため、自身で Dockerfile を作成しました。本記事では、この Dockerfile の概要と動作確認について記述します。

2. Dockerfile

今回、作成した Dockerfile は以下の通りです。ベースは Ubuntu を採用しています。後は、シンプルに公式ドキュメントのインストールコマンド 1 を Dockerfile コマンドに変換しています。しかし、公式ドキュメントのインストールコマンドだけでは、パスが見つからずエラーになるので、最後に手動で環境変数を設定しています。

1
FROM ubuntu:latest
2
3
RUN apt-get update && apt-get install -y curl gzip
4
5
RUN curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && \
6
chmod +x cs && \
7
./cs setup -y
8
9
ENV PATH="$PATH:/root/.local/share/coursier/bin"

3. 動作確認

docker build コマンドで Docker イメージを作成します。docker run コマンドで Docker コンテナを立ち上げて、コンテナに入ります。コンテナ内でテスト用の Scala ファイルを作成して実行します。ターミナル上に「Hello, World!」が表示されれば正常に動作しています。

Terminal window
1
$ ls
2
dockerfile
3
$ docker build -t scala-dev-env .
4
$ docker run -it scala-dev-env
5
# ここから Docker コンテナ内
6
$ mkdir work
7
$ cd work/
8
$ cat << EOF > Main.scala
9
> @main def hello(): Unit =
10
> println("Hello, World!")
11
> EOF
12
$ ls
13
Main.scala
14
$ scala-cli .
15
Hello, World!

4. おわりに

ここまで、Coursier を用いた Scala 開発環境構築用 Dockerfile の概要と動作確認について記述してきました。今回、自作した Dockerfile は最適化などを行っていないため、ビルドされた Docker イメージは 1.81GB になります。また、sbt の動作確認なども行えていません。今後は、これらの課題解決に取り組みたいと思います。

Terminal window
1
$ docker images
2
REPOSITORY TAG IMAGE ID CREATED SIZE
3
scala-dev-env latest 4e11bb72c9ae 27 minutes ago 1.81GB

  1. Coursier, Installation:https://get-coursier.io/docs/cli-installation