annotate contrib/docker/apache-server/Dockerfile @ 23399:fd5247a88e63

docker: add Docker files for running an Apache mod_wsgi server I frequently find myself wanting to run hgweb in a production-like environment, with a real HTTP server and multiple WSGI workers. This patch introduces a Docker environment for running Mercurial under Apache + mod_wsgi. With just a few command executions, it is possible to spin up a Docker container running hgweb. The container is tailored for Mercurial developers wanting to run Mercurial from a source checkout. It is **not** meant to be something suitable for production use. The container provides a default hgweb environment with an empty repository that allows pushes. You can thus start a container and push your favorite repository there for quick testing. The container is designed to allow customizations. Users can provide their own hgweb configurations and mount existing directories containing repositories into the container. The behavior of the container and how to control things is documented in the README.rst file.
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 11 Nov 2014 20:32:10 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23399
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
1 FROM debian:wheezy
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
2
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
3 ENV DEBIAN_FRONTEND noninteractive
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
4 ENV WSGI_PROCESSES 4
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
5 ENV WSGI_THREADS 1
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
6 ENV WSGI_MAX_REQUESTS 100000
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
7
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
8 EXPOSE 80
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
9 VOLUME ["/var/hg/htdocs", "/var/hg/repos"]
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
10
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
11 RUN apt-get update && apt-get -y install libapache2-mod-wsgi python-dev vim
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
12
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
13 # Install our own Apache site.
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
14 RUN a2dissite 000-default
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
15 ADD vhost.conf /etc/apache2/sites-available/hg
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
16 RUN a2ensite hg
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
17
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
18 ADD hgwebconfig /defaulthgwebconfig
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
19
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
20 ADD entrypoint.sh /entrypoint.sh
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
21 ENTRYPOINT ["/entrypoint.sh"]
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
22
fd5247a88e63 docker: add Docker files for running an Apache mod_wsgi server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
23 CMD ["/usr/sbin/apache2", "-DFOREGROUND"]