From feb31758ad5f69bba6a95bd754c7ca98e670bc26 Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Thu, 4 May 2017 00:06:29 +0300 Subject: [PATCH] readme, fix some docker config --- DockerMakefile | 35 ++++++++++++++++++++++++++ README.md | 36 ++++++++++++++++++++++++--- bin/docker_local_init.sh | 6 +++++ bin/migrate.sh | 4 +++ compose/Dockerfile.celery.local | 7 ------ compose/Dockerfile.celery.production | 7 ------ docker-compose.yml | 20 +++++++++++---- requirements/base.txt | 5 ++-- requirements/local.txt | 3 ++- src/dokumentor/settings/base.py | 11 +++++--- src/dokumentor/settings/production.py | 10 +------- 11 files changed, 106 insertions(+), 38 deletions(-) create mode 100755 bin/docker_local_init.sh create mode 100755 bin/migrate.sh delete mode 100644 compose/Dockerfile.celery.local delete mode 100644 compose/Dockerfile.celery.production diff --git a/DockerMakefile b/DockerMakefile index e69de29..a826e26 100644 --- a/DockerMakefile +++ b/DockerMakefile @@ -0,0 +1,35 @@ + +.PHONY: build гз start stop migrate loaddata collectstatic + +build: + docker-compose build + +up: + docker-compose up -d + +down: + docker-compose down + +start: + docker-compose start + +stop: + docker-compose stop + +migrate: + docker-compose run web python src/manage.py migrate sites + docker-compose run web python src/manage.py migrate myauth + docker-compose run web python src/manage.py migrate + +loaddata: + docker-compose run web python src/manage.py loaddata src/myauth/fixtures/myauth.json + docker-compose run web python src/manage.py loaddata src/commons/fixtures/cms.json + docker-compose run web python src/manage.py loaddata src/commons/fixtures/djangocms_text_ckeditor.json + docker-compose run web python src/manage.py loaddata src/commons/fixtures/sites.json + docker-compose run web python src/manage.py loaddata src/customer/fixtures/price.json + docker-compose run web python src/manage.py loaddata src/docs/fixtures/country.json + docker-compose run web python src/manage.py loaddata src/docs/fixtures/currency.json + docker-compose run web python src/manage.py loaddata src/docs/fixtures/measure.json + +collectstatic: + docker-compose run web python manage.py collectstatic --noinput diff --git a/README.md b/README.md index 15db818..026f8fa 100644 --- a/README.md +++ b/README.md @@ -24,15 +24,23 @@ virtualenv --python=python3 env source env/bin/activate pip install -r requirements.txt ``` -Создаем локальные настройки +### Настройка окружения + +Копируем файл с переменными окружения ```bash -cp project/local_settings.py.skeleton project/local_settings.py +cp conf/env.template conf/env ``` +и прописывем в `conf/env` свои данные Накатываем миграции и заполняем базу данных ```bash -python manage.py migrate +bin/migrate.sh +``` +Загружаем фикстуры +```bash +bin/loaddata.sh ``` + ### Установка проекта для разработки командой `make` Для разработки проект можно развернуть выполив @@ -45,4 +53,24 @@ make run ```bash cd src celery -A dokumentor worker -l info -E -``` \ No newline at end of file +``` + + +## Установка dev версии docker + +Для первого запуска проекта выполните скрипт +```bash +bin/docker_local_init.sh +``` + +###Команды для докера + +#### Остановка докера +```bash +makefile -f DockerMakefle stop +``` + +#### Запуск докера +```bash +makefile -f DockerMakefle start +``` diff --git a/bin/docker_local_init.sh b/bin/docker_local_init.sh new file mode 100755 index 0000000..7afd073 --- /dev/null +++ b/bin/docker_local_init.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +makefile -f DockerMakefile build +makefile -f DockerMakefile up +makefile -f DockerMakefile migrate +makefile -f DockerMakefile loaddata diff --git a/bin/migrate.sh b/bin/migrate.sh new file mode 100755 index 0000000..fc58504 --- /dev/null +++ b/bin/migrate.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +python src/manage.py migrate sites +python src/manage.py migrate myauth +python src/manage.py migrate diff --git a/compose/Dockerfile.celery.local b/compose/Dockerfile.celery.local deleted file mode 100644 index d9e6b5b..0000000 --- a/compose/Dockerfile.celery.local +++ /dev/null @@ -1,7 +0,0 @@ -FROM python:3.6 -ENV PYTHONUNBUFFERED 1 -RUN mkdir -p /code/public/ -WORKDIR /code/src -COPY requirements /code/requirements -RUN pip install --upgrade pip && pip install -r ../requirements/local.txt -ADD . /code/ diff --git a/compose/Dockerfile.celery.production b/compose/Dockerfile.celery.production deleted file mode 100644 index 3138e29..0000000 --- a/compose/Dockerfile.celery.production +++ /dev/null @@ -1,7 +0,0 @@ -FROM python:3.6 -ENV PYTHONUNBUFFERED 1 -RUN mkdir -p /code/public/ -WORKDIR /code/src -COPY requirements /code/requirements -RUN pip install --upgrade pip && pip install -r ../requirements/production.txt -ADD . /code/ diff --git a/docker-compose.yml b/docker-compose.yml index 2938482..9d758d4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,8 +16,8 @@ services: container_name: rabbitmq image: rabbitmq:latest environment: - - RABBITMQ_DEFAULT_USER=dokumentor - - RABBITMQ_DEFAULT_PASS=dokumentor + RABBITMQ_DEFAULT_USER: 'dokumentor' + RABBITMQ_DEFAULT_PASS: 'dokumentor' ports: - "8080:15672" - "5672:5672" @@ -26,19 +26,27 @@ services: celery: build: context: . - dockerfile: compose/Dockerfile.celery.local + dockerfile: compose/Dockerfile.web.local container_name: celery - command: bash -c 'celery -A dokumentor worker -l info -E' + command: bash -c 'cd src && celery -A dokumentor worker -l info -E' volumes: - .:/code env_file: conf/env environment: DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor' + REDIS_URL: 'redis://redis:6379/1' CELERY_BROKER_URL: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' CELERY_RESULT_BACKEND: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' links: - db - rabbitmq + - redis + + redis: + image: redis:latest + container_name: redis + ports: + - '6379:6379' web: restart: always @@ -46,7 +54,7 @@ services: build: context: . dockerfile: compose/Dockerfile.web.local - command: bash -c 'python src/manage.py makemigrations && python src/manage.py migrate && python src/manage.py runserver 0.0.0.0:8000' + command: bash -c 'python src/manage.py runserver 0.0.0.0:8000' volumes: - .:/code ports: @@ -54,8 +62,10 @@ services: env_file: conf/env environment: DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor' + REDIS_URL: 'redis://redis:6379/1' CELERY_BROKER_URL: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' CELERY_RESULT_BACKEND: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' depends_on: - db - rabbitmq + - redis diff --git a/requirements/base.txt b/requirements/base.txt index 89f2fd6..0507849 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -37,7 +37,6 @@ flup==1.0.3.dev20161029 gnureadline==6.3.3 html5lib==0.9999999 httplib2==0.10.3 -ipython==2.1.0 isort==4.2.5 kombu==4.0.2 lazy-object-proxy==1.2.2 @@ -69,4 +68,6 @@ xlutils==2.0.0 xlwt==1.2.0 dj-database-url==0.4.2 envvars==0.3.0 -psycopg2==2.6 \ No newline at end of file +psycopg2==2.6 +django-redis==4.8.0 +redis==2.10.5 diff --git a/requirements/local.txt b/requirements/local.txt index ec47464..89d51be 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -1,3 +1,4 @@ -r base.txt +ipython==2.1.0 django-debug-toolbar==1.4 -django-eml-email-backend==0.1 \ No newline at end of file +django-eml-email-backend==0.1 diff --git a/src/dokumentor/settings/base.py b/src/dokumentor/settings/base.py index 46e8409..27a5ed1 100644 --- a/src/dokumentor/settings/base.py +++ b/src/dokumentor/settings/base.py @@ -301,10 +301,15 @@ THUMBNAIL_PROCESSORS = ( COMMON_CACHE_PREFIX = 'dokumentor_' CMS_CACHE_PREFIX = '%scms-' % COMMON_CACHE_PREFIX +REDIS_URL = e.get('REDIS_URL') + CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', - 'LOCATION': '127.0.0.1:11211', + "default": { + "BACKEND": "django_redis.cache.RedisCache", + "LOCATION": REDIS_URL, + "OPTIONS": { + "CLIENT_CLASS": "django_redis.client.DefaultClient", + } } } diff --git a/src/dokumentor/settings/production.py b/src/dokumentor/settings/production.py index b5babb1..4b35c9e 100644 --- a/src/dokumentor/settings/production.py +++ b/src/dokumentor/settings/production.py @@ -22,14 +22,6 @@ TEMPLATES[0]['OPTIONS']['loaders'] = [ ('django.template.loaders.cached.Loader', TEMPLATES[0]['OPTIONS']['loaders']), ] -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': '/tmp/django_cache_dokumentor', - } -} - - DEFAULT_FROM_EMAIL = e.get('DJANGO_FROM_EMAIL') SERVER_EMAIL = DEFAULT_FROM_EMAIL EMAIL_HOST = e.get('DJANGO_EMAIL_HOST') @@ -38,4 +30,4 @@ EMAIL_HOST_USER = e.get('DJANGO_EMAIL_USER') EMAIL_HOST_PASSWORD = e.get('DJANGO_EMAIL_PASSWORD') EMAIL_USE_TLS = e.get('DJANGO_EMAIL_USE_TLS') EMAIL_USE_SSL = e.get('DJANGO_EMAIL_USE_SSL') -EMAIL_SUBJECT_PREFIX = 'dokumentor ' \ No newline at end of file +EMAIL_SUBJECT_PREFIX = 'dokumentor '