mediagoblin/Dockerfile-fedora-python3-sqlite
Ben Sturmfels 7e2a2ecfdc Extend Fedora Dockerfile, add sourcehut builds for Debian and Fedora.
Previously had partial docs for Fedora 31. This updates to Fedora 33, adds
support for audio and video and adds dependencies to allow the test suite to run
to completion.
2021-03-09 14:47:40 +11:00

103 lines
2.4 KiB
Plaintext

# A Dockerfile for MediaGoblin hacking.
#
# IMPORTANT: This Dockerfile is not an officially supported approach to
# deploying MediaGoblin. It is experimental and intended for helping developers
# run the test suite. To deploy MediaGoblin, see:
#
# https://mediagoblin.readthedocs.io/en/master/siteadmin/deploying.html
#
# See Dockerfile-debian-python3-sqlite for details.
FROM fedora:33
RUN dnf -y install \
automake \
gcc \
git-core \
make \
nodejs \
npm \
python3-devel \
virtualenv
RUN dnf -y install \
findutils \
python3-alembic \
python3-celery \
python3-jsonschema \
python3-kombu \
python3-lxml \
python3-migrate \
# Fedora only
python3-pillow \
python3-py \
python3-pytest \
python3-pytest-xdist \
python3-snowballstemmer \
python3-sphinx \
# Not in Fedora
# python3-sphinxcontrib.websupport \
python3-webtest \
# Fedora only
which \
# To build waitress on Fedora 33 (not required for 31)
libffi-devel
RUN dnf -y install \
gstreamer1-plugins-base \
gstreamer1-plugins-bad-free \
gstreamer1-plugins-good \
gstreamer1-plugins-ugly-free \
python3-numpy
RUN dnf search gst
RUN dnf -y install \
python3-gobject \
python3-gstreamer1 \
gstreamer1-plugin-openh264
# RUN apt-get install -y \
# poppler-utils
RUN groupadd www-data
RUN groupadd --system mediagoblin --gid 1024
RUN adduser www-data -g www-data -G mediagoblin
RUN mkdir /opt/mediagoblin
RUN chown -R www-data:www-data /opt/mediagoblin
WORKDIR /opt/mediagoblin
RUN mkdir --mode=g+w /var/www
RUN chown root:www-data /var/www
USER www-data
RUN git clone --depth=1 https://git.sr.ht/~mediagoblin/mediagoblin --branch ci .
RUN git show --oneline --no-patch
RUN ./bootstrap.sh
RUN VIRTUALENV_FLAGS='--system-site-packages' ./configure
RUN make
RUN ./bin/python -m pytest ./mediagoblin/tests --boxed
RUN echo '[[mediagoblin.media_types.audio]]' >> mediagoblin.ini
RUN echo '[[mediagoblin.media_types.video]]' >> mediagoblin.ini
# Fedora only
RUN ./bin/pip install certifi
RUN ./bin/gmg dbupdate
RUN ./bin/gmg adduser --username admin --password a --email admin@example.com
RUN ./bin/gmg makeadmin admin
# Without the following we get "ModuleNotFoundError: No module named
# 'paste.script'" when running ./lazyserver.sh. Not sure why as PasteScript is
# in the setup.py requirements. Before this we have Paste==3.4.0; after we have
# Paste==3.5.0.
RUN ./bin/pip install PasteScript --force-reinstall
EXPOSE 6543/tcp
CMD ["./lazyserver.sh", "--server-name=broadcast"]