When you need to build your Scala project, but have no way to install SBT on your host, you can still do it if you have Docker.
There are few ready to use container images on DockerHub. We create our own.
All we need for that is to prepare a Dockerfile:
FROM java:latest
MAINTAINER Nikolay Kushin nikolay@indoo.rs
ENV SCALA_VERSION 2.11.7
ENV SBT_VERSION 0.13.9
ENV SBT_OPTS -Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Xss2M -Duser.timezone=GMT
# install sbt
RUN wget https://dl.bintray.com/sbt/debian/sbt-$SBT_VERSION.deb
RUN dpkg -i sbt-$SBT_VERSION.deb
# install scala
RUN wget https://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.deb
RUN dpkg -i scala-$SCALA_VERSION.deb
# fetch base dependencies
RUN sbt compile
VOLUME /src
WORKDIR /src
CMD ["sbt"]
Our Dockerfile is relatively easy and self-explaining.
Next step is to build an image. Save Dockerfile in some folder and execute following commande in terminal:
docker build -t sbt-docker .
Now when the image is ready we can create container with mounted source folder, containing our Scala project and run SBT.
docker run -it --rm -v $(pwd):/src sbt-docker sbt docker:stage
Thats it! Enjoy!