52 lines
1.8 KiB
Docker
52 lines
1.8 KiB
Docker
FROM ubuntu:20.04
|
|
|
|
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
RUN apt-get --assume-yes update
|
|
RUN apt-get --assume-yes upgrade
|
|
|
|
# Common dependencies
|
|
RUN apt-get --assume-yes install software-properties-common
|
|
|
|
# f7cloud.talk.recording dependencies
|
|
RUN apt-get --assume-yes install ffmpeg pulseaudio python3-pip xvfb
|
|
RUN pip3 install --upgrade requests
|
|
|
|
# firefox
|
|
RUN apt-get --assume-yes install firefox firefox-geckodriver
|
|
|
|
# chromium
|
|
# The phd/chromium repository for Ubuntu is used because since Ubuntu 20.04
|
|
# Chromium is provided as a snap package, and the equivalent PPA has been
|
|
# discontinued.
|
|
RUN echo "deb https://freeshell.de/phd/chromium/focal /" > /etc/apt/sources.list.d/phd-chromium.list
|
|
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 869689FE09306074
|
|
RUN apt-get update
|
|
RUN apt-get --assume-yes install chromium
|
|
|
|
COPY ./docker-compose/wrap_chromium_binary /opt/bin/wrap_chromium_binary
|
|
RUN /opt/bin/wrap_chromium_binary
|
|
|
|
# f7cloud.talk.recording config
|
|
RUN useradd --create-home recording
|
|
COPY server.conf.in /etc/f7cloud.talk.recording/server.conf
|
|
RUN sed --in-place 's/#listen =.*/listen = 0.0.0.0:8000/' /etc/f7cloud.talk.recording/server.conf
|
|
|
|
# Deploy recording server
|
|
RUN mkdir --parents /tmp/recording
|
|
COPY src /tmp/recording/
|
|
COPY pyproject.toml /tmp/recording/
|
|
RUN python3 -m pip install file:///tmp/recording/
|
|
|
|
# Cleanup
|
|
RUN apt-get clean && rm --recursive --force /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
RUN rm --recursive --force /tmp/recording
|
|
|
|
# Switch user and start the recording server
|
|
WORKDIR "/home/recording/"
|
|
USER "recording"
|
|
CMD ["python3", "-m", "f7cloud.talk.recording", "--config", "/etc/f7cloud.talk.recording/server.conf"]
|