Skip to content
Snippets Groups Projects
Dockerfile 1.56 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Trattnig's avatar
    David Trattnig committed
    FROM ocaml/opam2:debian-10
    
    LABEL maintainer="David Trattnig <david.trattnig@subsquare.at>"
    
    # Engine System Dependencies
    
    RUN sudo apt-get update && sudo apt-get -y install \
    
          apt-utils \
    
          redis-server \
          ffmpeg \
          quelcom \
    
          python3 \
          python3-pip \      
          build-essential \
    
          libmariadbclient-dev \
          default-libmysqlclient-dev
    
    # Liquidsoap System Dependencies
    
    
    RUN sudo apt-get install -qq -yy \
    
        libasound2-dev \
        libflac-dev \
        libjack-dev \
        libmad0-dev \
        libmp3lame-dev \
        libogg-dev \
        libopus-dev \
        libpcre3-dev \
        libpulse-dev \
        libsamplerate0-dev \
        libssl-dev \
        libtag1-dev \
        libvorbis-dev \
        m4 \
        pkg-config
    
    # Update OPAM
    
    RUN opam init --disable-sandboxing -y
    RUN opam switch create 4.08.0
    RUN opam update -y
    RUN opam install depext -y
    
    # Liquidsoap Dependencies
    
    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
    
    # Print Debug Information
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    RUN echo $(python3 -V)
    RUN echo $(python3.7 -V)
    RUN echo $(ls /home/opam/.opam/4.08.0/bin/liquidsoap)
    
    # Setup Engine
    
    RUN mkdir -p /srv
    RUN mkdir -p /home/opam/audio
    RUN mkdir -p /home/opam/audio/source
    COPY . /srv
    
    WORKDIR /srv
    ENV PATH="/home/opam/.local/bin:${PATH}"
    
    RUN sudo usermod -a -G audio opam
    RUN python3.7 $(which pip3) install -r requirements.txt
    
    COPY configuration/sample-docker.engine.ini /srv/configuration/engine.ini
    
    
    # Start the Engine
    
    David Trattnig's avatar
    David Trattnig committed
    
    
    ENTRYPOINT ["./run.sh"]