From 2aba0649bf591b3c14a37be9613226c30aa30514 Mon Sep 17 00:00:00 2001 From: Cristian David Chushig Muzo Date: Thu, 4 Oct 2018 21:18:12 +0200 Subject: [PATCH 1/2] Add docker files to run application --- Makefile | 10 ++++++++++ docker-compose.yml | 13 +++++++++++++ docker/Dockerfile | 39 +++++++++++++++++++++++++++++++++++++ docker/README.md | 16 +++++++++++++++ docker/docker-entrypoint.sh | 4 ++++ docker/requirements.txt | 12 ++++++++++++ 6 files changed, 94 insertions(+) create mode 100644 Makefile create mode 100644 docker-compose.yml create mode 100644 docker/Dockerfile create mode 100644 docker/README.md create mode 100644 docker/docker-entrypoint.sh create mode 100644 docker/requirements.txt diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e7dba38 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +SRC?=$(shell dirname `pwd`) + +build: + docker-compose build +up: + docker-compose up +migrate: + docker-compose run web python manage.py migrate + + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..25ba4e0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +version: '2' +services: + db: + image: postgres + web: + build: ./docker/ + command: python manage.py runserver 0.0.0.0:8000 + volumes: + - .:/code + ports: + - "8000:8000" + depends_on: + - db diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..078bdd3 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,39 @@ +FROM python:2-onbuild + +LABEL maintainer="Cristian David Chushig Muzo " + +USER root + +RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y \ + install sudo xvfb \ + git wget python-virtualenv python-numpy python-scipy netpbm \ + python-pyqt5 ghostscript libffi-dev libjpeg-turbo-progs \ + python-dev python-setuptools \ + python3-dev cmake \ + libtiff5-dev libjpeg-dev zlib1g-dev \ + libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev \ + python-tk python3-tk \ + libharfbuzz-dev libfribidi-dev && apt-get clean + +RUN git clone https://github.com/python-pillow/Pillow.git && cd Pillow/depends \ + && ./install_openjpeg.sh && ./install_raqm.sh + +RUN mkdir /code/ +WORKDIR /code/ +ADD requirements.txt /code/ +RUN pip install -r requirements.txt + +# Latest version of Hairball framework +RUN git clone https://github.com/jemole/hairball.git /code/hairball \ + && cd /code/hairball && pip install . + +ADD . /code/ + +CMD ["python", "manage.py"] + +# EXPOSE 8000 + +# COPY ./docker-entrypoint.sh / +# ENTRYPOINT ["/docker-entrypoint.sh"] + + diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..55fb24f --- /dev/null +++ b/docker/README.md @@ -0,0 +1,16 @@ +# Using Dr. Scratch via Docker +This directory contains `Dockerfile` to make it easy to build and running drScratch environment. + +## Installing Docker + + +## Running the container + +We use `Makefile` to simmplify docker commands. + $ make build + +Run the containers of db and web application.. + $ make up + +Run Django task to migrate tables of db. + $ make migrate diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh new file mode 100644 index 0000000..eaf393e --- /dev/null +++ b/docker/docker-entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +python manage.py migrate +python manage.py collectstatic --noinput diff --git a/docker/requirements.txt b/docker/requirements.txt new file mode 100644 index 0000000..121130a --- /dev/null +++ b/docker/requirements.txt @@ -0,0 +1,12 @@ +coloredlogs==9.0 +construct==2.0.6 +Django==1.11.11 +djangorestframework==3.7.7 +humanfriendly==4.8 +kurt==2.0.7 +Markdown==2.6.10 +monotonic==1.4 +olefile==0.44 +Pillow==4.3.0 +pytz==2018.3 +psycopg2==2.7.4 \ No newline at end of file From faf0eecd499d35da577a71bab6350d2c31f4d909 Mon Sep 17 00:00:00 2001 From: Cristian David Chushig Muzo Date: Fri, 5 Oct 2018 11:23:44 +0200 Subject: [PATCH 2/2] Complete README and fix Dockerfile --- docker/Dockerfile | 8 +------- docker/README.md | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 078bdd3..7a97736 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -29,11 +29,5 @@ RUN git clone https://github.com/jemole/hairball.git /code/hairball \ ADD . /code/ -CMD ["python", "manage.py"] - -# EXPOSE 8000 - # COPY ./docker-entrypoint.sh / -# ENTRYPOINT ["/docker-entrypoint.sh"] - - +# ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/docker/README.md b/docker/README.md index 55fb24f..2ffe3a3 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,16 +1,26 @@ # Using Dr. Scratch via Docker -This directory contains `Dockerfile` to make it easy to build and running drScratch environment. +This directory contains `Dockerfile` to make it easy to build and running drScratch environment via [Docker](https://www.docker.com/). ## Installing Docker - +General instructions to install Docker can be followed in the next links: +[Install Docker](https://docs.docker.com/install/). +[Install Docker Compose](https://docs.docker.com/compose/install/). ## Running the container -We use `Makefile` to simmplify docker commands. - $ make build +We use `Makefile` to simplify docker-compose commands. + +Build Docker images of db and web application. +```bash +$ make build +``` -Run the containers of db and web application.. - $ make up +Run the containers of db and web application. +```bash +$ make up +``` Run Django task to migrate tables of db. - $ make migrate +```bash +$ make migrate +```