This page is a scratchpad for Terri's Dockerfile, which sets up a very default version of Mailman in your container so that you can try out Mailman 3 suite. Suggestions and instructions for use welcome! == Prerequisites == To use this, you will need to have [[https://www.docker.com/|Docker]] set up. They have [[https://docs.docker.com/installation/#installation|docker setup instructions for many different platforms]] == The Mailman 3 Suite Dockerfile == {{{ ######################################### # Dockerfile to setup GNU Mailman Suite # Based on Ubuntu ######################################### # Set the base image to Ubuntu FROM ubuntu # File Author / Maintainer MAINTAINER Terri Oda # Update the sources and install some basic python stuff RUN apt-get update && \ apt-get install -y git python3-dev python3-pip python-dev python-pip python-virtualenv # Get the nodejs stuff RUN apt-get install -y nodejs npm && \ npm install -g less && \ ln -s /usr/bin/nodejs /usr/bin/node # Set the default directory where CMD will execute WORKDIR /mailman3 # Get Mailman Bundler RUN git clone https://gitlab.com/mailman/mailman-bundler.git # Get buildout, go into Mailman Bundler and build RUN pip install zc.buildout WORKDIR /mailman3/mailman-bundler RUN buildout # Set up virtualenv RUN virtualenv venv RUN . venv/bin/activate # Expose ports EXPOSE 8000 # Prep some stuff RUN ./bin/mailman-post-update RUN ./bin/mailman-web-django-admin createsuperuser RUN ./bin/mailman start # This sets the django webserver up to not only run, but binds it to all interfaces, port 8000 ENTRYPOINT ./bin/mailman-web-django-admin runserver 0.0.0.0:8000 }}} == Building the docker image == Copy the content above into a file named `Dockerfile` in a directory, and then run the following command: {{{ sudo docker build -t mailman3 . }}} This will take some time to build a docker image with the required steps. == Starting the container and mailman3 suite == Run this to start the newly built Mailman docker container: {{{ sudo docker run -P mailman3 }}} Then find out the container id by following command {{{ sudo docker ps }}} The `-P` option exposes the Django port inside the container to localhost on a random port. To find this port do: {{{ sudo docker ps }}} and look under the `PORTS` column. For example, if you see: {{{ $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fa17316ce2d5 mailman3:latest "/bin/sh -c './bin/m 3 minutes ago Up 3 minutes 0.0.0.0:49153->8000/tcp ecstatic_mestorf }}} You should now be able to open `http://localhost:49153` and get to the !HyperKitty web page. {{{#!wiki caution '''Mac OS X users''' The container seems to run without incident on MacOS X, but you can't seem to access it from a local browser for some reason. If anyone can help debug this, we would very much appreciate help! }}}