This repository has been archived by the owner on Jan 6, 2023. It is now read-only.
/
Dockerfile-python2
102 lines (83 loc) · 2.83 KB
/
Dockerfile-python2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# A Dockerfile for MediaGoblin hacking.
# docker build -t mediagoblin-python2 -f Dockerfile-python2 .
# docker build -t mediagoblin
# docker run -it -p 6543:6543 -v ~/ws/mediagoblin/mediagoblin:/opt/mediagoblin/mediagoblin -v ~/ws/mediagoblin/extlib:/opt/mediagoblin/extlib mediagoblin-python2
# docker stop [container-name/id]
# docker start [container-name/id]
# docker kill [container-name/id]
FROM debian:buster
# Install bootstrap and configure dependencies. Currently requires virtualenv
# rather than the more modern python3-venv (should be fixed).
RUN apt-get update && apt-get install -y \
automake \
git \
nodejs \
npm \
python-dev \
virtualenv
# Install make and runtime dependencies.
RUN apt-get install -y \
python-alembic \
python-celery \
python-jsonschema \
python-kombu \
python-lxml \
python-migrate \
python-mock \
python-py \
python-pytest \
python-pytest-xdist \
python-six \
python-sphinx \
python-webtest
# Install audio dependencies.
RUN apt-get install -y \
gstreamer1.0-libav \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-ugly \
libsndfile1-dev \
python-gst-1.0 \
python-numpy \
python-scipy
# Install video dependencies.
RUN apt-get install -y \
gir1.2-gst-plugins-base-1.0 \
gir1.2-gstreamer-1.0 \
gstreamer1.0-tools \
python-gi
# Create working directory.
RUN mkdir /opt/mediagoblin
RUN chown -R www-data:www-data /opt/mediagoblin
WORKDIR /opt/mediagoblin
# Create /var/www because Bower writes some cache files into /var/www during
# make, failing if it doesn't exist.
RUN mkdir /var/www
RUN chown root:www-data /var/www
RUN chmod g+w /var/www
USER www-data
# Clone MediaGoblin for use during the install. Could alternately copy across
# just the files needed to run bootstrap/configure/make.
RUN git clone git://git.savannah.gnu.org/mediagoblin.git -b master .
RUN git submodule init && git submodule update
RUN ./bootstrap.sh
RUN VIRTUALENV_FLAGS='--system-site-packages' ./configure
RUN make
# Re-run installation of Python dependencies - seems to install more things that
# didn't get installed with make. That shouldn't happen.
RUN ./bin/python setup.py develop --upgrade
# Only supported on Python 2.
RUN ./bin/pip install scikits.audiolab
# Patch to fix the config defaults that are failing at runtime. Needed here
# since we're running `dbupdate` during the Docker build.
COPY mediagoblin/init/config.py /opt/mediagoblin/mediagoblin/init/config.py
RUN echo '[[mediagoblin.media_types.audio]]' >> mediagoblin.ini
RUN echo '[[mediagoblin.media_types.video]]' >> mediagoblin.ini
RUN cat mediagoblin.ini
# Using default sqlite database for now.
RUN ./bin/gmg dbupdate
RUN ./bin/gmg adduser --username admin --password a --email admin@example.com
RUN ./bin/gmg makeadmin admin
# You can change this to /bin/bash if you'd prefer a shell.
CMD ["./lazyserver.sh", "--server-name=broadcast"]