FROM openjdk:17-jdk-slim-bullseye

# Install some basic development utilities
RUN apt-get update && apt-get install -y \ 
  curl \
  git \
  python3 \
  zip \
  procps \
  && rm -rf /var/lib/apt/lists/* \
  && curl -fsSL https://deb.nodesource.com/setup_17.x | bash \
  && apt-get install -y nodejs \
  && npm install -g yarn \
  && rm -rf /var/lib/apt/lists/* 

# User the Java-based launcher as Alpine Linux and Graal native compiled images of CS don't like
# Alpine Linux (due to musl instead of gcc)
RUN bash -c 'curl -fLo /usr/bin/cs https://git.io/coursier-cli' && \
    chmod u+x /usr/bin/cs

# Put Coursier-installed artifacts on the path
ENV PATH="$PATH:/root/.local/share/coursier/bin"   

# Get sbt
RUN bash -c 'cs install sbt'

# Get scala-cli
RUN bash -c 'curl -sSLf https://scala-cli.virtuslab.org/get | sh'

# Get http server
RUN bash -c 'npm install -g http-server'

CMD bash