Added a README file for the docker image.

- Legacy-Id: 10437
This commit is contained in:
Henrik Levkowetz 2015-11-07 20:26:53 +00:00
parent c2432107a3
commit 5d6128eded

81
docker/README.rst Normal file
View file

@ -0,0 +1,81 @@
====================================================
Datatracker Development in a Docker Container (beta)
====================================================
Intro
=====
Docker_ is a set of tools which lets you package software together with its
dependencies in lightweight containers, and run it in isolated virtual environments.
During and just after IETF-94 I've spent quite a bit of time setting up a docker
image which provides the dependencies needed to run the datatracker, and it's now
available for beta testing. Hopefully this should make it substantially easier to
get started with datatracker development.
Steps
=====
1. Set up Docker on your preferred platform. `Official installers`_
exist for many Linux flavours, OS X, Windows and Cloud services.
Docker containers require the services of an underlying Linux API,
which means that on OS X and Windows, these have to be provided
by a virtual machine which runs a minimal Linux image. The virtual
machine used is VirtualBox_, and the official installer provides an
image named Docker Machine.
Another option is boot2docker_, which is deprecated as of end 2015,
but has worked well for me, something I unfortunately cannot say for
the Docker Machine as of November 2015. It seems to me as if boot2docker
has been deprecated before the Docker Machine was quite ready for
prime time.
2. Check out your datatracker branch in a suitable directory. We'll
assume ``~/src/dt/`` here, and assume you are ``coder``::
~/src/dt/ $ svn co https://svn.tools.ietf.org/svn/tools/ietfdb/personal/coder/6.8.2.dev0
3. In the checked out working copy, you'll find a ``data/`` directory
at the top level. Fetch down a pre-built copy of the datatracker
database, place it in this directory and unpack it::
~/src/dt/6.8.2.dev0/data/ $ wget https://www.ietf.org/lib/dt/sprint/ietf_utf8.bin.tar.bz2 .
~/src/dt/6.8.2.dev0/data/ $ tar xjf ietf_utf8.bin.tar.bz2
4. In the checked out working copy, you'll also find a ``docker/``
directory at the top level. It contains a Dockerfile which can
be used to build a docker image, but we will be using a prebuilt
image::
~/src/dt/6.8.2.dev0/docker/ $ ./run
This will pull down the latest docker datatracker image, start it
up with appropriate settings, map the internal ``/var/lib/mysql/``
directory to the ``data/mysql/`` directory we placed the database
in, set up a python virtualenv for you, install some dependencies,
and drop you in a bash shell.
5. You are now free to run the tests **in the virtual environment**::
(datatracker) $ ietf/manage.py test --settings=settings_sqlitetest
and then start the dev server::
(datatracker) $ ietf/manage.py runserver 0.0.0.0:8000
Note the IP address ``0.0.0.0`` used to make the dev server bind to all
addresses. The internal port 8000 has been mapped to port 8000 externally,
too, by the ``run`` command. In order to find the IP address of the
VirtualBox, run ``$ boot2docker ip`` or equivalent::
~/src/dt/6.8.2.dev0/ $ boot2docker ip
192.168.59.103
~/src/dt/6.8.2.dev0/ $ open -a Safari http://192.168.59.103:8000/
.. _Docker: https://www.docker.com/
.. _`Official installers`: https://docs.docker.com/engine/installation/
.. _boot2docker: http://boot2docker.io/
.. _VirtualBox: https://www.virtualbox.org/