Added a README file for the docker image.
- Legacy-Id: 10437
This commit is contained in:
parent
c2432107a3
commit
5d6128eded
81
docker/README.rst
Normal file
81
docker/README.rst
Normal 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/
|
Loading…
Reference in a new issue