56 lines
2.1 KiB
Markdown
56 lines
2.1 KiB
Markdown
# Datatracker Development in Docker
|
|
|
|
## Getting started
|
|
|
|
1. [Set up Docker](https://docs.docker.com/get-started/) on your preferred
|
|
platform.
|
|
|
|
2. If you have a copy of the datatracker code checked out already, simply `cd`
|
|
to the top-level directory.
|
|
|
|
If not, check out a datatracker branch as usual. We'll check out `trunk`
|
|
below, but you can use any branch:
|
|
|
|
svn co https://svn.ietf.org/svn/tools/ietfdb/trunk
|
|
cd trunk
|
|
|
|
3. **TEMPORARY:** Replace the contents of the `docker` directory with [Lars'
|
|
files](https://svn.ietf.org/svn/tools/ietfdb/personal/lars/7.39.1.dev0/docker/).
|
|
|
|
4. **TEMPORARY:** Until [Lars'
|
|
changes](https://svn.ietf.org/svn/tools/ietfdb/personal/lars/7.39.1.dev0/docker/)
|
|
have been merged and a docker image is available for download, you will need
|
|
to build it locally:
|
|
|
|
docker/build
|
|
|
|
This will take a while, but only needs to be done once.
|
|
|
|
5. Use the `docker/run` script to start the datatracker container. You will be
|
|
dropped into a shell from which you can start the datatracker and execute
|
|
related commands as usual, for example
|
|
|
|
ietf/manage.py runserver 0.0.0.0:8000
|
|
|
|
to start the datatracker.
|
|
|
|
You can also pass additional arguments to `docker/run`, in which case they
|
|
will be executed in the container (instead of a shell being started.)
|
|
|
|
If you do not already have a copy of the IETF database available in the
|
|
`data` directory, one will be downloaded and imported the first time you run
|
|
`docker/run`. This will take some time.
|
|
|
|
Once the datatracker has started, you should be able to open
|
|
[http://localhost:8000](http://localhost:8000) in a browser and see the
|
|
landing page.
|
|
|
|
## Troubleshooting
|
|
|
|
- If the database fails to start, the cause is usually an incompatibility
|
|
between the database that last touched the files in `data/mysql` and the
|
|
database running inside the docker container.
|
|
|
|
The solution is to blow away your existing database (`rm -rf data/mysql`). A
|
|
fresh copy will be retrieved and imported next time you do `docker/run`, which
|
|
should resolve this issue. |