From c32d7fc62b6a88799e7dd5c7906d308e154f8908 Mon Sep 17 00:00:00 2001 From: Olaf Radicke Date: Wed, 6 Jan 2016 13:24:58 +0100 Subject: [PATCH 1/5] add a hack for using volume --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 93d06d7..a38ced3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -49,7 +49,7 @@ RUN rm /${booktypeversion}.zip RUN pip install -r /Booktype/requirements/prod.txt # Create Booktype project -RUN /Booktype/scripts/createbooktype --database postgresql ${instancename} +RUN #!/bin/bash echo 'yes\n' | RUN /Booktype/scripts/createbooktype --database postgresql ${instancename} #RUN cp -R /${instancename}/docker_book_site/settings /${instancename}/settings RUN mkdir -p /${instancename}/settings From ddd8c09a7bee59656858fa7a62e69ef8e6d3b754 Mon Sep 17 00:00:00 2001 From: Olaf Radicke Date: Wed, 6 Jan 2016 13:46:15 +0100 Subject: [PATCH 2/5] remove the hack for using volume --- docker/Dockerfile | 6 ++++-- docker/base.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a38ced3..bba8841 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -6,6 +6,7 @@ ENV booktypeversion 2.0 #env DJANGO_SETTINGS_MODULE ${instancename}.settings ENV HTTP_HOST localhost ENV SITE_NAME Documentation +ENV DATA_ROOT /srv/booktype/data/ ENV DJANGO_SETTINGS_MODULE settings.prod ENV PYTHONPATH $PYTHONPATH://:/${instancename}/lib/:/Booktype/lib:/${instancename} ENV BOOKTYPE_USER booktype @@ -17,7 +18,7 @@ ENV REDIS_HOST 'booktyperedis' EXPOSE 8000 EXPOSE 8080 -VOLUME /${instancename}/data/ +VOLUME ${DATA_ROOT} RUN apt-get update && apt-get -y upgrade @@ -49,7 +50,8 @@ RUN rm /${booktypeversion}.zip RUN pip install -r /Booktype/requirements/prod.txt # Create Booktype project -RUN #!/bin/bash echo 'yes\n' | RUN /Booktype/scripts/createbooktype --database postgresql ${instancename} +# RUN #!/bin/bash echo 'yes\n' | /Booktype/scripts/createbooktype --database postgresql ${instancename} +RUN /Booktype/scripts/createbooktype --database postgresql ${instancename} #RUN cp -R /${instancename}/docker_book_site/settings /${instancename}/settings RUN mkdir -p /${instancename}/settings diff --git a/docker/base.py b/docker/base.py index 064344d..1990768 100644 --- a/docker/base.py +++ b/docker/base.py @@ -92,7 +92,8 @@ ) # data -DATA_ROOT = BOOKTYPE_ROOT.child('data') +#DATA_ROOT = BOOKTYPE_ROOT.child('data') +DATA_ROOT = os.environ['DATA_ROOT'] DATA_URL = '{}/data/'.format(BOOKTYPE_URL) # profile images From dd55de47120be2c925eedfa81321055df7d38571 Mon Sep 17 00:00:00 2001 From: Olaf Radicke Date: Wed, 6 Jan 2016 17:44:42 +0100 Subject: [PATCH 3/5] Add documentation --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index 67fb842..fb3e9fb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,33 @@ # booktype_with_docker A [booktype](https://www.sourcefabric.org/en/booktype/) in a docker container. It is using sqlite as backent. +# quick start # + +Clone my repo +``` +Git clone https://github.com/OlafRadicke/booktype_with_docker.git +``` +Let run the ansible roll out script. It's create the docker container on your local machine. Before install ansible, +when it not exit. +``` +cd ./booktype_with_docker/ansible +su -c 'ansible-playbook booktype_with_docker' +``` +Check is all container running now: +``` +[root@oradicke-localdomain ~]# docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +89ddb07ce27d olafradicke/booktype "/bin/bash start.sh" About an hour ago Up About an hour 8000/tcp, 0.0.0.0:49108->8080/tcp booktype +301e57e02bf4 redis "/entrypoint.sh redis" 2 hours ago Up 2 hours 6379/tcp booktyperedis +f60f86fb056c postgres "/docker-entrypoint.s" 2 hours ago Up 2 hours 5432/tcp booktypepostgres +``` +For trouble shutting go in the container and start the service manual +``` +[root@oradicke-localdomain ~]# docker exec -it booktype /bin/bash +root@89ddb07ce27d:/# /bin/bash start.sh + +``` + # Biuild images # ``` From cfdb94414366560a8a935f9b4dab44d797457baf Mon Sep 17 00:00:00 2001 From: Olaf Radicke Date: Fri, 8 Jan 2016 10:41:32 +0100 Subject: [PATCH 4/5] Move init staps to dockerfile. --- docker/Dockerfile | 18 ++++++++++++++++-- docker/start.sh | 15 +++------------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index bba8841..8a0837a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -8,7 +8,7 @@ ENV HTTP_HOST localhost ENV SITE_NAME Documentation ENV DATA_ROOT /srv/booktype/data/ ENV DJANGO_SETTINGS_MODULE settings.prod -ENV PYTHONPATH $PYTHONPATH://:/${instancename}/lib/:/Booktype/lib:/${instancename} +ENV PYTHONPATH $PYTHONPATH:/:/${instancename}/lib/:/Booktype/lib:/${instancename}:/${instancename}/settings ENV BOOKTYPE_USER booktype ENV BOOKTYPE_PASS booktype ENV BOOKTYPE_DB booktype @@ -16,7 +16,6 @@ ENV PG_HOST booktyppostgres ENV PG_PORT '5432' ENV REDIS_HOST 'booktyperedis' -EXPOSE 8000 EXPOSE 8080 VOLUME ${DATA_ROOT} @@ -62,4 +61,19 @@ COPY ./base.py /${instancename}/settings/base.py #RUN cat /${instancename}/settings/prod.py +RUN echo "DJANGO_SETTINGS_MODULE:" +RUN echo $DJANGO_SETTINGS_MODULE +RUN echo "PYTHONPATH" +RUN echo $PYTHONPATH + +# Initialise Booktype +RUN cd /${instancename}/ +RUN ls -lah +RUN #!/bin/bash source ${instancename}/booktype.env +RUN django-admin.py syncdb --noinput +RUN django-admin.py migrate +RUN django-admin.py createsuperuser +#django-admin.py createsuperuser --username='sysadmin' --email='sysadmin@okfn.org' --noinput + + CMD ["/bin/bash", "start.sh"] diff --git a/docker/start.sh b/docker/start.sh index 476d6b5..28cfd0b 100644 --- a/docker/start.sh +++ b/docker/start.sh @@ -3,15 +3,6 @@ echo "DJANGO_SETTINGS_MODULE:" echo $DJANGO_SETTINGS_MODULE -# Initialise Booktype -source ${instancename}/booktype.env -django-admin.py syncdb --noinput -django-admin.py migrate -django-admin.py createsuperuser -#django-admin.py createsuperuser --username='sysadmin' --email='sysadmin@okfn.org' --noinput - -# This has to be done every time you want to start a server -#cd /docker_booktype -source /docker_booktype/bin/activate -source ${instancename}/booktype.env -django-admin.py runserver 0.0.0.0:8080 +cd /${instancename}/ +/${instancename}/manage.py +runserver 0.0.0.0:8080 From 7c0686863f64d05a2a5fbb5a79cc01d73b03de1d Mon Sep 17 00:00:00 2001 From: Olaf Radicke Date: Sat, 30 Dec 2017 09:36:18 +0100 Subject: [PATCH 5/5] bug fix --- ansible/files/booktyperedis.service | 2 +- ansible/run_booktype.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ansible/files/booktyperedis.service b/ansible/files/booktyperedis.service index 6e72835..99f251a 100644 --- a/ansible/files/booktyperedis.service +++ b/ansible/files/booktyperedis.service @@ -12,7 +12,7 @@ Requires=docker.service TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker kill booktyperedis ExecStartPre=-/usr/bin/docker rm booktyperedis -ExecStartPre=/usr/bin/docker pull postgres +ExecStartPre=/usr/bin/docker pull redis ExecStart=/usr/bin/docker run --name=booktyperedis \ redis diff --git a/ansible/run_booktype.yml b/ansible/run_booktype.yml index 28e8fc0..cabab1f 100644 --- a/ansible/run_booktype.yml +++ b/ansible/run_booktype.yml @@ -12,7 +12,7 @@ volume: "/srv/docker/booktype/data" tasks: - - name: "create a volume data directory for xwiki" + - name: "create a volume data directory for postgres and booktype data" file: path: "{{ item }}" state: "directory"