###--- Python Stage ---###

FROM ocaml/opam2:debian-10

LABEL maintainer="David Trattnig <david.trattnig@subsquare.at>"


RUN set -ex \
  && rm -f /usr/bin/python && ln -s /usr/local/bin/python /usr/bin/python \
  && rm -f /usr/bin/python3 && ln -s /usr/local/bin/python3 /usr/bin/python3

# System Package Installation
RUN set -ex \
	&& apt-get update -q \
	&& apt-get install -y -q --no-install-recommends \
      supervisor \
      redis-server \
      libsndfile1 \
      ffmpeg \
      quelcom \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Python Package Installation
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install -r /tmp/requirements.txt

# Create Users
RUN set -ex \
  && adduser --home /srv --no-create-home --system --uid 1000 --group engineuser \
  && adduser engineuser audio

# Default configuration
COPY configuration/sample-docker.engine.ini configuration/engine.ini
COPY configuration/sample-docker.gunicorn.conf.py configuration/gunicorn.conf.py



# Liquidsoap Dependencies
RUN opam init --disable-sandboxing -y
RUN opam switch create 4.08.0
RUN opam update -y
RUN opam install depext -y
RUN opam depext taglib mad lame vorbis flac opus cry samplerate pulseaudio bjack alsa ssl liquidsoap -y 
RUN opam install taglib mad lame vorbis flac opus cry samplerate pulseaudio bjack alsa ssl liquidsoap -y
RUN eval $(opam env)