この記事は、Mediumからの移植です。

Alpineベースのsbtが使えるDockerイメージを作る。

Terfno

Mar 21 · 6 min read

どうもてるふのです。Scalaに入門する前に環境構築したろ!って思ったら想像以上にめんどくさいです。

この記事では、既存探し→自作方針決定→検証→Dockerfile作成→build→Docker Hubへのpush までを書きます。自作イメージの作り方なんも分からん後輩へのドキュメントも兼ねます。

完成品

環境はDocker 19.03で、alpine:3.11をベースにopenjdk11-jre-headlessを搭載し、sbtの1.3.8が動作するイメージです。DockerfileはGitHubに公開しました。イメージはDocker Hubにpushしています。

Terfno/sbt-alpine

Docker Hub

背景

以前からScalaの「関数型とオブジェクト指向のハイブリッド」という噂を聞いていて、「ちょっと入門してみるか」くらいのノリだったんですが、Play Frameworkを使おうとするとそこそこ環境構築がダルかったのでDockerに乗せてしまいたい(安直)というのがこのイメージ制作のきっかけです。

そのうち、AlpineベースでScala Play Frameworkが動くイメージも作りますが、とりあえずsbtが動く環境を整えることにしました。

課題

公式にイメージがない。ちなみにScalaもPlayもない。なんでや。

他の人のアプローチ

scala-sbt

名前は探しているものそのものなんですが、中身がDebianベースでした。妥協できません。