skip to Main Content

I would like to have sbt in my docker image. I created a Dockerfile base on centos:centos8 image:

FROM centos:centos8
ENV SCALA_VERSION 2.13.1
ENV SBT_VERSION 0.13.18

RUN  yum install -y epel-release
RUN  yum update -y && yum install -y wget

RUN wget -O /usr/local/bin/sbt-launch.jar http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/$SBT_VERSION/sbt-launch.jar

WORKDIR /root
EXPOSE 8080

RUN sbt compile
CMD sbt run

And also I need to have sbt installed here, but when I ran this script I got an error:

Step 10/11 : RUN sbt compile
 ---> Running in 0aadcd774ba0
/bin/sh: sbt: command not found

I cannot understand why sbt could not been found. Is it a good way to achieve what I need or I should try other one? But I need to do it with centos

EDIT:

Finally it works after help from answer below. Working script looks like:

FROM centos:centos8
ENV SBT_VERSION 0.13.17

RUN yum install -y java-11-openjdk && 
    yum install -y epel-release && 
    yum update -y && yum install -y wget && 
    wget http://dl.bintray.com/sbt/rpm/sbt-$SBT_VERSION.rpm && 
    yum install -y sbt-$SBT_VERSION.rpm

WORKDIR /root
EXPOSE 8080

RUN sbt compile
CMD sbt run

2

Answers


  1. You would need to install sbt inside your Dockerfile. Here is an example:

    FROM centos:centos8
    ENV SCALA_VERSION 2.13.1
    ENV SBT_VERSION 0.13.17
    
    RUN yum install -y epel-release
    RUN yum update -y && yum install -y wget
    
    # INSTALL JAVA
    RUN yum install -y java-11-openjdk
    
    # INSTALL SBT
    RUN wget http://dl.bintray.com/sbt/rpm/sbt-${SBT_VERSION}.rpm
    RUN yum install -y sbt-${SBT_VERSION}.rpm
    
    RUN wget -O /usr/local/bin/sbt-launch.jar http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/$SBT_VERSION/sbt-launch.jar
    
    WORKDIR /root
    EXPOSE 8080
    
    RUN sbt compile
    CMD sbt run
    
    

    Note: I did not see the version you had in your env variable (0.13.18) so I changed it to 0.13.17.

    Login or Signup to reply.
  2. I ran into an issue where bintray.com was returning 403 randomly. I’m assuming it might be some kind of traffic throttle. Added the rpm file locally.

    COPY sbt-0.13.18.rpm /
    RUN yum install -y sbt-0.13.18.rpm
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search