aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Sturmfels <ben@sturm.com.au>2021-08-15 22:31:49 +1000
committerBen Sturmfels <ben@sturm.com.au>2021-08-15 22:35:45 +1000
commite6f8beeea432bf086a007839e0c3c2012370bf7b (patch)
tree28fcea6c7e4470f99fecc8305af1cf4d64af6d48
parentfa9ae2cc901b1b75462a3b2189548abb1611e9ad (diff)
downloadmediagoblin-e6f8beeea432bf086a007839e0c3c2012370bf7b.tar.lz
mediagoblin-e6f8beeea432bf086a007839e0c3c2012370bf7b.tar.xz
mediagoblin-e6f8beeea432bf086a007839e0c3c2012370bf7b.zip
Remove Debian 10 development Dockerfile.
Debian 11 has been released, so future releases need not provide explicit support for Debian 10.
-rw-r--r--.builds/debian-10-with-site-packages.yml73
-rw-r--r--Dockerfile-debian-10-sqlite201
-rw-r--r--Dockerfile-debian-11-sqlite44
-rw-r--r--docs/source/siteadmin/relnotes.rst5
4 files changed, 47 insertions, 276 deletions
diff --git a/.builds/debian-10-with-site-packages.yml b/.builds/debian-10-with-site-packages.yml
deleted file mode 100644
index ead92ab1..00000000
--- a/.builds/debian-10-with-site-packages.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-image: debian/buster
-packages:
- # Install bootstrap and configure dependencies.
- - automake
- - nodejs
- - npm
- - python3-dev
- - virtualenv
-
- # Install make and runtime dependencies.
- - python3-alembic
- - python3-feedgenerator
- - python3-jsonschema
- - python3-kombu
- - python3-lxml
- - python3-migrate
- - python3-pillow
- - python3-py
- - python3-pytest
- - python3-pytest-xdist
- - python3-snowballstemmer
- - python3-sphinx
- - python3-sphinxcontrib.websupport
- - python3-webtest
-
- # Install audio dependencies.
- - gstreamer1.0-libav
- - gstreamer1.0-plugins-bad
- - gstreamer1.0-plugins-base
- - gstreamer1.0-plugins-good
- - gstreamer1.0-plugins-ugly
- - python3-gst-1.0
- - python3-numpy
-
- # Install video dependencies.
- - gir1.2-gst-plugins-base-1.0
- - gir1.2-gstreamer-1.0
- - gstreamer1.0-tools
- - python3-gi
-
- # Install raw image dependencies.
- - libexiv2-dev
- - libboost-python-dev
-
- # Install document (PDF-only) dependencies.
- - poppler-utils
-
- # Install LDAP depedencies.
- - python3-ldap
-
- # Install OpenID dependencies.
- - python3-openid
-
-tasks:
- - core: |
- cd mediagoblin
- git show --oneline --no-patch
- ./bootstrap.sh
- VIRTUALENV_FLAGS='--system-site-packages' ./configure
- make
-
- # Install raw image library from PyPI as not available in Debian 10.
- ./bin/pip install py3exiv2
-
- # Confirm our packages version for later troubleshooting.
- ./bin/python -m pip freeze
-
- # Run the tests, explicitly listing out skipped tests.
- ./bin/python -m pytest -rs ./mediagoblin/tests --boxed
-
- # Build the documentation.
- cd docs && make html
-
diff --git a/Dockerfile-debian-10-sqlite b/Dockerfile-debian-10-sqlite
deleted file mode 100644
index a841a395..00000000
--- a/Dockerfile-debian-10-sqlite
+++ /dev/null
@@ -1,201 +0,0 @@
-# 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
-#
-# Most development Docker images are built and run as root. That doesn't work
-# here because the `bower` command run within the `make` step, refuses to run as
-# root.
-#
-# To build this Docker image, run:
-#
-# docker build -t mediagoblin-debian-10 - < Dockerfile-debian-10-sqlite
-#
-# The "- < Dockerfile" format advises Docker not to include the current
-# directory as build context. Alternatively the following provides build
-# context:
-#
-# docker build -t mediagoblin-debian-10 -f Dockerfile-debian-10-sqlite .
-#
-# Before running the image you first need to first assign the "mediagoblin" and
-# "user_dev" directories to an artificial group (1024) on the host that is
-# mirrored within the image (details below):
-#
-# sudo chown --recursive :1024 mediagoblin user_dev
-# find mediagoblin user_dev -type d -exec chmod 775 {} \;
-# find mediagoblin user_dev -type f -exec chmod 664 {} \;
-#
-# Then you can run the image with the upstream MediaGoblin code:
-#
-# docker run --interactive --tty --publish 6543:6543 mediagoblin-debian-10
-#
-# Or you can run with your local "mediagoblin" and "user_dev" directories
-# bind-mounted into the container. This provides automatic code reloading and
-# persistence:
-#
-# # TODO: Not working.
-# docker run --interactive --tty --publish 6543:6543 --volume ./mediagoblin:/opt/mediagoblin/mediagoblin --volume ./extlib:/opt/mediagoblin/extlib mediagoblin-python3
-#
-# Alternatively you use docker-compose instead of separate build/run steps:
-#
-# sudo chown --recursive :1024 mediagoblin user_dev
-# find mediagoblin user_dev -type d -exec chmod 775 {} \;
-# find mediagoblin user_dev -type f -exec chmod 664 {} \;
-# docker-compose up --build
-#
-# You can run the test suite with:
-#
-# docker run --tty mediagoblin-python3 bash -c "bin/python -m pytest ./mediagoblin/tests --boxed"
-
-
-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 \
-python3-dev \
-virtualenv
-
-# Install make and runtime dependencies.
-#
-# Excluding python3-celery here due to conflict with dist-packges for a
-# compatible version of billiard.
-RUN apt-get install -y \
-python3-alembic \
-python3-feedgenerator \
-python3-jsonschema \
-python3-lxml \
-python3-migrate \
-python3-py \
-python3-pytest \
-python3-pytest-xdist \
-python3-snowballstemmer \
-python3-sphinx \
-python3-sphinxcontrib.websupport \
-python3-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 \
-python3-gst-1.0 \
-python3-numpy
-
-# Install video dependencies.
-RUN apt-get install -y \
-gir1.2-gst-plugins-base-1.0 \
-gir1.2-gstreamer-1.0 \
-gstreamer1.0-tools \
-python3-gi
-
-# Install raw image dependencies.
-#
-# Currently (March 2021), python3-py3exiv2 is only available in Debian Sid, so
-# we need to install py3exiv2 from PyPI (later on in this Dockerfile). These are
-# the build depedencies for py3exiv2.
-RUN apt-get install -y \
-libexiv2-dev \
-libboost-python-dev
-
-# Install document (PDF-only) dependencies.
-# TODO: Check that PDF tests aren't skipped.
-RUN apt-get install -y \
-poppler-utils
-
-# Install LDAP depedencies.
-RUN apt-get install -y python3-ldap
-
-# Install OpenID dependencies.
-RUN apt-get install -y python3-openid
-
-# 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 --mode=g+w /var/www
-RUN chown root:www-data /var/www
-
-# Set up custom group to align with volume permissions for mounted
-# "mediagoblin/mediagoblin" and "mediagoblin/user_dev".
-#
-# The problem here is that the host's UID, GID and mode are used in the
-# container, but of course the container's user www-data is running under a
-# different UID/GID so can't read or write to the volume. It seems like there
-# should be a better approach, but we'll align volume permissions between host
-# and container as per
-# https://medium.com/@nielssj/docker-volumes-and-file-system-permissions-772c1aee23ca
-RUN groupadd --system mediagoblin --gid 1024 && adduser www-data mediagoblin
-
-USER www-data
-
-# Copy upstream MediaGoblin into the image for use in the build process.
-#
-# This build process is somewhat complicated, because of Bower/NPM, translations
-# and Python dependencies, so it's not really feasible just to copy over a
-# requirements.txt like many Python Dockerfiles examples do. We need the full
-# source.
-#
-# While it is possible to copy the source from the current directory like this:
-#
-# COPY --chown=www-data:www-data . /opt/mediagoblin
-#
-# that approach to lots of confusing problems when your working directory has
-# changed from the default - say you've enabled some plugins or switched
-# database type. So instead we're doing a git clone. We could potentially use
-# `git archive` but this still wouldn't account for the submodules.
-#
-# TODO: Figure out a docker-only way to do the build and run from our local
-# version, so that local changes are immediately available to the running
-# container. Not as easy as it sounds. We have this working with docker-compose,
-# but still uses upstream MediaGoblin for the build.
-RUN git clone --depth=1 git://git.savannah.gnu.org/mediagoblin.git --branch master .
-# RUN git clone --depth=1 https://gitlab.com/BenSturmfels/mediagoblin.git --branch master .
-RUN git show --oneline --no-patch
-
-RUN ./bootstrap.sh
-RUN VIRTUALENV_FLAGS='--system-site-packages' ./configure
-RUN make
-
-# Install raw image library from PyPI.
-RUN ./bin/pip install py3exiv2
-
-# Confirm our packages version for later troubleshooting.
-RUN ./bin/python -m pip freeze
-
-# Run the tests.
-RUN ./bin/python -m pytest -rs ./mediagoblin/tests --boxed
-
-# Build the documentation.
-RUN cd docs && make html
-
-# Only safe if being run on a clean git checkout. Otherwise you may have already
-# customised mediagoblin.ini to already install these.
-RUN echo '[[mediagoblin.media_types.audio]]' >> mediagoblin.ini
-RUN echo '[[mediagoblin.media_types.video]]' >> mediagoblin.ini
-RUN echo '[[mediagoblin.media_types.raw_image]]' >> mediagoblin.ini
-RUN echo '[[mediagoblin.media_types.pdf]]' >> mediagoblin.ini
-
-# Prepare the SQLite database.
-#
-# TODO: Should probably be done at runtime.
-RUN ./bin/gmg dbupdate
-RUN ./bin/gmg adduser --username admin --password a --email admin@example.com
-RUN ./bin/gmg makeadmin admin
-
-EXPOSE 6543/tcp
-
-# TODO: Is it possible to have a CMD here that is overriden by docker-compose?
-CMD ["./lazyserver.sh", "--server-name=broadcast"]
diff --git a/Dockerfile-debian-11-sqlite b/Dockerfile-debian-11-sqlite
index b345bb2e..7982d269 100644
--- a/Dockerfile-debian-11-sqlite
+++ b/Dockerfile-debian-11-sqlite
@@ -6,7 +6,49 @@
#
# https://mediagoblin.readthedocs.io/en/master/siteadmin/deploying.html
#
-# See Dockerfile-debian-10-sqlite for details.
+# Most development Docker images are built and run as root. That doesn't work
+# here because the `bower` command run within the `make` step, refuses to run as
+# root.
+#
+# To build this Docker image, run:
+#
+# docker build -t mediagoblin-debian-10 - < Dockerfile-debian-10-sqlite
+#
+# The "- < Dockerfile" format advises Docker not to include the current
+# directory as build context. Alternatively the following provides build
+# context:
+#
+# docker build -t mediagoblin-debian-10 -f Dockerfile-debian-10-sqlite .
+#
+# Before running the image you first need to first assign the "mediagoblin" and
+# "user_dev" directories to an artificial group (1024) on the host that is
+# mirrored within the image (details below):
+#
+# sudo chown --recursive :1024 mediagoblin user_dev
+# find mediagoblin user_dev -type d -exec chmod 775 {} \;
+# find mediagoblin user_dev -type f -exec chmod 664 {} \;
+#
+# Then you can run the image with the upstream MediaGoblin code:
+#
+# docker run --interactive --tty --publish 6543:6543 mediagoblin-debian-10
+#
+# Or you can run with your local "mediagoblin" and "user_dev" directories
+# bind-mounted into the container. This provides automatic code reloading and
+# persistence:
+#
+# # TODO: Not working.
+# docker run --interactive --tty --publish 6543:6543 --volume ./mediagoblin:/opt/mediagoblin/mediagoblin --volume ./extlib:/opt/mediagoblin/extlib mediagoblin-python3
+#
+# Alternatively you use docker-compose instead of separate build/run steps:
+#
+# sudo chown --recursive :1024 mediagoblin user_dev
+# find mediagoblin user_dev -type d -exec chmod 775 {} \;
+# find mediagoblin user_dev -type f -exec chmod 664 {} \;
+# docker-compose up --build
+#
+# You can run the test suite with:
+#
+# docker run --tty mediagoblin-python3 bash -c "bin/python -m pytest ./mediagoblin/tests --boxed"
FROM debian:bullseye
diff --git a/docs/source/siteadmin/relnotes.rst b/docs/source/siteadmin/relnotes.rst
index ff4ec099..390143a3 100644
--- a/docs/source/siteadmin/relnotes.rst
+++ b/docs/source/siteadmin/relnotes.rst
@@ -34,8 +34,11 @@ This chapter has important information about our current and previous releases.
- Convert `setup.py` to `setup.cfg` (Ben Sturmfels)
- Document re-installation of plugins during upgrade [#5611] (Ben Sturmfels)
- Improve usability of report handling page (Rodrigo Martins)
-- Removed unused `extlib/flask-wtf` code (Ben Sturmfels)
+- Remove unused `extlib/flask-wtf` code (Ben Sturmfels)
+- Remove unused `translitcodec` dependency (Ben Sturmfels)
+- Remove references to previous `tinymce` JS dependency (Ben Sturmfels)
- Remove plugin for decommissioned Mozilla Persona (Jgart)
+- Remove Debian 10 development Dockerfile (BenSturmfels)
**Bug fixes:**