readme, fix some docker config

feature/docker
Dmitriy Shesterkin 9 years ago
parent 7e840cc3bd
commit feb31758ad
  1. 35
      DockerMakefile
  2. 36
      README.md
  3. 6
      bin/docker_local_init.sh
  4. 4
      bin/migrate.sh
  5. 7
      compose/Dockerfile.celery.local
  6. 7
      compose/Dockerfile.celery.production
  7. 20
      docker-compose.yml
  8. 5
      requirements/base.txt
  9. 3
      requirements/local.txt
  10. 11
      src/dokumentor/settings/base.py
  11. 10
      src/dokumentor/settings/production.py

@ -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

@ -24,15 +24,23 @@ virtualenv --python=python3 env
source env/bin/activate source env/bin/activate
pip install -r requirements.txt pip install -r requirements.txt
``` ```
Создаем локальные настройки ### Настройка окружения
Копируем файл с переменными окружения
```bash ```bash
cp project/local_settings.py.skeleton project/local_settings.py cp conf/env.template conf/env
``` ```
и прописывем в `conf/env` свои данные
Накатываем миграции и заполняем базу данных Накатываем миграции и заполняем базу данных
```bash ```bash
python manage.py migrate bin/migrate.sh
```
Загружаем фикстуры
```bash
bin/loaddata.sh
``` ```
### Установка проекта для разработки командой `make` ### Установка проекта для разработки командой `make`
Для разработки проект можно развернуть выполив Для разработки проект можно развернуть выполив
@ -45,4 +53,24 @@ make run
```bash ```bash
cd src cd src
celery -A dokumentor worker -l info -E celery -A dokumentor worker -l info -E
``` ```
## Установка dev версии docker
Для первого запуска проекта выполните скрипт
```bash
bin/docker_local_init.sh
```
###Команды для докера
#### Остановка докера
```bash
makefile -f DockerMakefle stop
```
#### Запуск докера
```bash
makefile -f DockerMakefle start
```

@ -0,0 +1,6 @@
#!/usr/bin/env bash
makefile -f DockerMakefile build
makefile -f DockerMakefile up
makefile -f DockerMakefile migrate
makefile -f DockerMakefile loaddata

@ -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

@ -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/

@ -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/

@ -16,8 +16,8 @@ services:
container_name: rabbitmq container_name: rabbitmq
image: rabbitmq:latest image: rabbitmq:latest
environment: environment:
- RABBITMQ_DEFAULT_USER=dokumentor RABBITMQ_DEFAULT_USER: 'dokumentor'
- RABBITMQ_DEFAULT_PASS=dokumentor RABBITMQ_DEFAULT_PASS: 'dokumentor'
ports: ports:
- "8080:15672" - "8080:15672"
- "5672:5672" - "5672:5672"
@ -26,19 +26,27 @@ services:
celery: celery:
build: build:
context: . context: .
dockerfile: compose/Dockerfile.celery.local dockerfile: compose/Dockerfile.web.local
container_name: celery 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: volumes:
- .:/code - .:/code
env_file: conf/env env_file: conf/env
environment: environment:
DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor' DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor'
REDIS_URL: 'redis://redis:6379/1'
CELERY_BROKER_URL: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' CELERY_BROKER_URL: 'amqp://dokumentor:dokumentor@rabbitmq:5672//'
CELERY_RESULT_BACKEND: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' CELERY_RESULT_BACKEND: 'amqp://dokumentor:dokumentor@rabbitmq:5672//'
links: links:
- db - db
- rabbitmq - rabbitmq
- redis
redis:
image: redis:latest
container_name: redis
ports:
- '6379:6379'
web: web:
restart: always restart: always
@ -46,7 +54,7 @@ services:
build: build:
context: . context: .
dockerfile: compose/Dockerfile.web.local 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: volumes:
- .:/code - .:/code
ports: ports:
@ -54,8 +62,10 @@ services:
env_file: conf/env env_file: conf/env
environment: environment:
DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor' DJANGO_DB: 'postgres://dokumentor:dokumentor@db:5432/dokumentor'
REDIS_URL: 'redis://redis:6379/1'
CELERY_BROKER_URL: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' CELERY_BROKER_URL: 'amqp://dokumentor:dokumentor@rabbitmq:5672//'
CELERY_RESULT_BACKEND: 'amqp://dokumentor:dokumentor@rabbitmq:5672//' CELERY_RESULT_BACKEND: 'amqp://dokumentor:dokumentor@rabbitmq:5672//'
depends_on: depends_on:
- db - db
- rabbitmq - rabbitmq
- redis

@ -37,7 +37,6 @@ flup==1.0.3.dev20161029
gnureadline==6.3.3 gnureadline==6.3.3
html5lib==0.9999999 html5lib==0.9999999
httplib2==0.10.3 httplib2==0.10.3
ipython==2.1.0
isort==4.2.5 isort==4.2.5
kombu==4.0.2 kombu==4.0.2
lazy-object-proxy==1.2.2 lazy-object-proxy==1.2.2
@ -69,4 +68,6 @@ xlutils==2.0.0
xlwt==1.2.0 xlwt==1.2.0
dj-database-url==0.4.2 dj-database-url==0.4.2
envvars==0.3.0 envvars==0.3.0
psycopg2==2.6 psycopg2==2.6
django-redis==4.8.0
redis==2.10.5

@ -1,3 +1,4 @@
-r base.txt -r base.txt
ipython==2.1.0
django-debug-toolbar==1.4 django-debug-toolbar==1.4
django-eml-email-backend==0.1 django-eml-email-backend==0.1

@ -301,10 +301,15 @@ THUMBNAIL_PROCESSORS = (
COMMON_CACHE_PREFIX = 'dokumentor_' COMMON_CACHE_PREFIX = 'dokumentor_'
CMS_CACHE_PREFIX = '%scms-' % COMMON_CACHE_PREFIX CMS_CACHE_PREFIX = '%scms-' % COMMON_CACHE_PREFIX
REDIS_URL = e.get('REDIS_URL')
CACHES = { CACHES = {
'default': { "default": {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', "BACKEND": "django_redis.cache.RedisCache",
'LOCATION': '127.0.0.1:11211', "LOCATION": REDIS_URL,
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
} }
} }

@ -22,14 +22,6 @@ TEMPLATES[0]['OPTIONS']['loaders'] = [
('django.template.loaders.cached.Loader', 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') DEFAULT_FROM_EMAIL = e.get('DJANGO_FROM_EMAIL')
SERVER_EMAIL = DEFAULT_FROM_EMAIL SERVER_EMAIL = DEFAULT_FROM_EMAIL
EMAIL_HOST = e.get('DJANGO_EMAIL_HOST') 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_HOST_PASSWORD = e.get('DJANGO_EMAIL_PASSWORD')
EMAIL_USE_TLS = e.get('DJANGO_EMAIL_USE_TLS') EMAIL_USE_TLS = e.get('DJANGO_EMAIL_USE_TLS')
EMAIL_USE_SSL = e.get('DJANGO_EMAIL_USE_SSL') EMAIL_USE_SSL = e.get('DJANGO_EMAIL_USE_SSL')
EMAIL_SUBJECT_PREFIX = 'dokumentor ' EMAIL_SUBJECT_PREFIX = 'dokumentor '

Loading…
Cancel
Save