Skip to content
This repository has been archived by the owner on Apr 25, 2023. It is now read-only.

Commit

Permalink
Add docker development environment
Browse files Browse the repository at this point in the history
  • Loading branch information
doodyparizada committed Nov 23, 2015
1 parent 977a0c3 commit 2bb1e11
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 0 deletions.
31 changes: 31 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM ubuntu:14.04
MAINTAINER Doody Parizada <doody.parizada @ gmail.com>

# install apt dependencies
RUN apt-get update -y && \
apt-get install -y build-essential git python python-dev python-setuptools python-pip && \
apt-get build-dep -y python-imaging python-lxml && \
pip install --upgrade pip && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN mkdir -p /opt/knesset /opt/database

# download database file into database location
WORKDIR /opt/database
RUN apt-get install -y wget && \
wget http://oknesset-devdb.s3.amazonaws.com/dev.db.bz2 && \
bzip2 -d dev.db.bz2 && \
apt-get purge -y --auto-remove wget

# install python requirements
COPY requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt

VOLUME ["/opt/knesset"]
WORKDIR /opt/knesset
EXPOSE 8000

# set up entry point and default command
COPY docker/entrypoint.sh /tmp/entrypoint.sh
ENTRYPOINT ["/tmp/entrypoint.sh"]
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
12 changes: 12 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ GitHub
.. _repository: https://github.com/hasadna/Open-Knesset


Docker
-----------

- install docker_ and docker-compose_
- run ``docker-compose up``
- this pulls the right image from docker hub, runs the development django server
using the local code and makes the site available at port 8000 on the host
- logs will be printed to stdout and can also be viewed via ``docker logs`` command

.. _docker: https://docs.docker.com/engine/installation/
.. _docker-compose: https://docs.docker.com/compose/install/

Linux
-----------

Expand Down
7 changes: 7 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
knesset:
image: doodyparizada/open-knesset
ports:
- "8000:8000"
volumes:
- .:/opt/knesset
working_dir: /opt/knesset
20 changes: 20 additions & 0 deletions docker/docker_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"""Extension and overloading for running in docker."""
import logging
import sys


DATABASES = {
'default': {
'NAME': '/opt/database/dev.db',
'ENGINE': 'django.db.backends.sqlite3',
},
}

logger = logging.getLogger("open-knesset")
logger.handlers = []
logger.setLevel(logging.DEBUG) # override this in prod server to logging.ERROR
h = logging.StreamHandler(sys.stdout)
h.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s\t%(name)s:%(lineno)d\t%(levelname)s\t%(message)s")
h.setFormatter(formatter)
logger.addHandler(h)
6 changes: 6 additions & 0 deletions docker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh

cp docker/docker_settings.py knesset/local_settings.py && \
python manage.py migrate && \
python manage.py createsuperuser --noinput --username=superuser [email protected] && \
$*

0 comments on commit 2bb1e11

Please sign in to comment.