| 1 | # A Dockerfile for MediaGoblin hacking. |
| 2 | # |
| 3 | # See Dockerfile-debian-python3-sqlite for documentation. |
| 4 | |
| 5 | FROM fedora:31 |
| 6 | |
| 7 | RUN yum -y update |
| 8 | RUN yum -y install \ |
| 9 | automake \ |
| 10 | gcc \ |
| 11 | git \ |
| 12 | make \ |
| 13 | nodejs \ |
| 14 | npm \ |
| 15 | python3-devel \ |
| 16 | virtualenv |
| 17 | |
| 18 | RUN yum -y install \ |
| 19 | findutils \ |
| 20 | python3-alembic \ |
| 21 | python3-celery \ |
| 22 | python3-jsonschema \ |
| 23 | python3-kombu \ |
| 24 | python3-lxml \ |
| 25 | python3-migrate \ |
| 26 | # Fedora only |
| 27 | python3-pillow \ |
| 28 | python3-py \ |
| 29 | python3-pytest \ |
| 30 | python3-pytest-xdist \ |
| 31 | python3-six \ |
| 32 | python3-snowballstemmer \ |
| 33 | python3-sphinx \ |
| 34 | # Not in Fedora |
| 35 | # python3-sphinxcontrib.websupport \ |
| 36 | python3-webtest \ |
| 37 | # Fedora only |
| 38 | which |
| 39 | |
| 40 | # RUN apt-get install -y \ |
| 41 | # gstreamer1.0-libav \ |
| 42 | # gstreamer1.0-plugins-bad \ |
| 43 | # gstreamer1.0-plugins-base \ |
| 44 | # gstreamer1.0-plugins-good \ |
| 45 | # gstreamer1.0-plugins-ugly \ |
| 46 | # libsndfile1-dev \ |
| 47 | # python3-gst-1.0 \ |
| 48 | # python3-numpy \ |
| 49 | # python3-scipy |
| 50 | |
| 51 | # RUN apt-get install -y \ |
| 52 | # gir1.2-gst-plugins-base-1.0 \ |
| 53 | # gir1.2-gstreamer-1.0 \ |
| 54 | # gstreamer1.0-tools \ |
| 55 | # python3-gi |
| 56 | |
| 57 | # RUN apt-get install -y \ |
| 58 | # poppler-utils |
| 59 | |
| 60 | RUN groupadd www-data |
| 61 | RUN groupadd --system mediagoblin --gid 1024 |
| 62 | RUN adduser www-data -g www-data -G mediagoblin |
| 63 | |
| 64 | RUN mkdir /opt/mediagoblin |
| 65 | RUN chown -R www-data:www-data /opt/mediagoblin |
| 66 | WORKDIR /opt/mediagoblin |
| 67 | |
| 68 | RUN mkdir --mode=g+w /var/www |
| 69 | RUN chown root:www-data /var/www |
| 70 | |
| 71 | USER www-data |
| 72 | |
| 73 | RUN git clone --depth=1 git://git.savannah.gnu.org/mediagoblin.git -b master . |
| 74 | |
| 75 | RUN ./bootstrap.sh |
| 76 | RUN VIRTUALENV_FLAGS='--system-site-packages' ./configure |
| 77 | RUN make |
| 78 | |
| 79 | # RUN echo '[[mediagoblin.media_types.audio]]' >> mediagoblin.ini |
| 80 | # RUN echo '[[mediagoblin.media_types.video]]' >> mediagoblin.ini |
| 81 | |
| 82 | # Fedora only |
| 83 | RUN ./bin/pip install certifi |
| 84 | RUN ./bin/gmg dbupdate |
| 85 | RUN ./bin/gmg adduser --username admin --password a --email admin@example.com |
| 86 | RUN ./bin/gmg makeadmin admin |
| 87 | |
| 88 | EXPOSE 6543/tcp |
| 89 | |
| 90 | CMD ["./lazyserver.sh", "--server-name=broadcast"] |