diff --git a/README.md b/README.md index 5a82bcd..0a9b8c4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Tempo Django CMS + React with Cookiecutter ============================ -A [Cookiecutter](https://github.com/audreyr/cookiecutter) template for [DjnagoCMS](https://www.django-cms.org/) and frontend tools: [Gulp](https://github.com/gulpjs/gulp), [Sass](https://github.com/sass/sass), [React](https://github.com/facebook/react) +A [Cookiecutter](https://github.com/audreyr/cookiecutter) template for [DjangoCMS](https://www.django-cms.org/) and frontend tools: [Gulp](https://github.com/gulpjs/gulp), [Sass](https://github.com/sass/sass), [React](https://github.com/facebook/react) Installation and usage @@ -51,7 +51,10 @@ Now you are ready to use Django CMS! with tmpo.io configuration. $ src/manage.py runserver -Docker support +Docker Support -------------- -If you want to run it with Docker you can find an embedded docker image (src/Dockerfile), to run Gunicorn. +If you want to run it with Docker you can simple run the commands below: + + $ docker-compose build + $ docker-compose up diff --git a/{{ cookiecutter.project_name }}/Dockerfile b/{{ cookiecutter.project_name }}/Dockerfile new file mode 100644 index 0000000..c967956 --- /dev/null +++ b/{{ cookiecutter.project_name }}/Dockerfile @@ -0,0 +1,27 @@ +FROM python:2.7-alpine3.8 + +WORKDIR /app + +RUN apk --no-cache add \ + build-base \ + cairo-dev \ + gdk-pixbuf-dev \ + jpeg-dev \ + libffi-dev \ + libxml2-dev \ + libxslt-dev \ + mariadb-dev \ + pango-dev \ + zlib-dev + +RUN pip install --upgrade pip + +RUN pip install gunicorn + +COPY src/requirements.txt /app/ + +RUN pip install -r requirements.txt + +COPY . /app/ + +CMD ["gunicorn", "{{ cookiecutter.project_name }}.wsgi", "-b", "0.0.0.0:8000", "-w", "1"] diff --git a/{{ cookiecutter.project_name }}/docker-compose.yml b/{{ cookiecutter.project_name }}/docker-compose.yml new file mode 100644 index 0000000..332dbfe --- /dev/null +++ b/{{ cookiecutter.project_name }}/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3' + +services: + app: + build: . + ports: + - '8000:8000' + volumes: + - '.:/app/' + command: sh -c "pip install -r src/requirements.txt && gunicorn {{ cookiecutter.project_name }}.wsgi -b 0.0.0.0:8000 -w 1" diff --git a/{{ cookiecutter.project_name }}/src/Dockerfile b/{{ cookiecutter.project_name }}/src/Dockerfile deleted file mode 100644 index 6723197..0000000 --- a/{{ cookiecutter.project_name }}/src/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM python:2.7 -RUN pip install --upgrade pip -RUN pip install gunicorn -COPY requirements.txt /requirements.txt -RUN pip install -r /requirements.txt - -WORKDIR /app - -CMD ["gunicorn", "{{ cookiecutter.project_name }}.wsgi", "-b", "0.0.0.0:8000", "-w", "1"] - -EXPOSE 8000 diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/config.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/config.py index c30016b..26c1564 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/config.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/config.py @@ -16,6 +16,7 @@ import logging logger = logging.getLogger('configs') + def env(var_name, default=None): v = os.getenv(var_name, None) if not v: @@ -58,5 +59,3 @@ def get_secret(path_file, cast=None, default=''): if cast: return cast(value) return value - - diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/urls.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/urls.py index 7117edc..dcbc799 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/urls.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}/urls.py @@ -3,24 +3,32 @@ from cms.sitemaps import CMSSitemap from django.conf import settings -from django.conf.urls import * # NOQA +from django.conf.urls import url, include from django.conf.urls.i18n import i18n_patterns from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns admin.autodiscover() -urlpatterns = i18n_patterns('', - url(r'^admin/', include(admin.site.urls)), # NOQA - url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', - {'sitemaps': {'cmspages': CMSSitemap}}), +urlpatterns = i18n_patterns( + '', + url(r'^admin/', include(admin.site.urls)), + url(r'^sitemap\.xml$', + 'django.contrib.sitemaps.views.sitemap', + { + 'sitemaps': {'cmspages': CMSSitemap} + }), url(r'^select2/', include('django_select2.urls')), url(r'^', include('cms.urls')), ) # This is only needed when using runserver. if settings.DEBUG: - urlpatterns = patterns('', - url(r'^media/(?P.*)$', 'django.views.static.serve', # NOQA - {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), - ) + staticfiles_urlpatterns() + urlpatterns # NOQA + urlpatterns = i18n_patterns( + '', + url(r'^media/(?P.*)$', + 'django.views.static.serve', + { + 'document_root': settings.MEDIA_ROOT, 'show_indexes': True + }), + ) + staticfiles_urlpatterns() + urlpatterns diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/admin.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/admin.py index 8cb7f45..faa18be 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/admin.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/admin.py @@ -1,2 +1,2 @@ #!/usr/bin/env python -# -*- coding: UTF-8 -*- +# -*- coding: utf-8 -*- diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/cms_app.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/cms_app.py index ef0012f..913e10c 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/cms_app.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/cms_app.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# -*- coding: UTF-8 -*- +# -*- coding: utf-8 -*- from cms.app_base import CMSApp from cms.apphook_pool import apphook_pool diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/urls.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/urls.py index ac6c75e..755797e 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/urls.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/urls.py @@ -1,5 +1,4 @@ -# -*- coding: UTF-8 -*- -# -------------------- +# -*- coding: utf-8 -*- from views import * from django.conf.urls import * diff --git a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/views.py b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/views.py index e80ea3f..aeaa7f9 100644 --- a/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/views.py +++ b/{{ cookiecutter.project_name }}/src/{{ cookiecutter.project_name }}cms/views.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# -*- coding: UTF-8 -*- +# -*- coding: utf-8 -*- from django.views.generic import ListView, DetailView