some project refactor

feature/docker
Dmitriy Shesterkin 9 years ago
parent d7dfc47fbe
commit 8c61d6ea7f
  1. 39
      DockerMakefile
  2. 78
      Makefile
  3. 31
      README.md
  4. 6
      bin/docker-local-init.sh
  5. 0
      conf/compose/Dockerfile.web.local
  6. 0
      conf/compose/Dockerfile.web.production
  7. 0
      conf/docker/entrypoint.sh
  8. 0
      conf/docker/entrypoint_production.sh
  9. 6
      docker-compose.stage.yml
  10. 6
      docker-compose.yml

@ -1,39 +0,0 @@
.PHONY: all build up run start stop migrate loaddata collectstatic
all: build migrate loaddata
build:
docker-compose build
run:
docker-compose up -d
up:
docker-compose up -d
down:
docker-compose down
start:
docker-compose start
stop:
docker-compose stop
migrate:
docker-compose exec web python src/manage.py migrate myauth
docker-compose exec web python src/manage.py migrate
loaddata:
docker-compose exec web python src/manage.py loaddata src/myauth/fixtures/myauth.json
docker-compose exec web python src/manage.py loaddata src/commons/fixtures/cms.json
docker-compose exec web python src/manage.py loaddata src/commons/fixtures/djangocms_text_ckeditor.json
docker-compose exec web python src/manage.py loaddata src/commons/fixtures/sites.json
docker-compose exec web python src/manage.py loaddata src/customer/fixtures/price.json
docker-compose exec web python src/manage.py loaddata src/docs/fixtures/country.json
docker-compose exec web python src/manage.py loaddata src/docs/fixtures/currency.json
docker-compose exec web python src/manage.py loaddata src/docs/fixtures/measure.json
collectstatic:
docker-compose run web python manage.py collectstatic --noinput

@ -1,47 +1,60 @@
PROJECT_DIR=$(shell pwd) #.PHONY:
VENV_DIR?=$(PROJECT_DIR)/env
PIP?=$(VENV_DIR)/bin/pip
PYTHON?=$(VENV_DIR)/bin/python
.PHONY: all clean test run requirements install virtualenv copy_settings loaddata # target: all - Default target. Does nothing.
all:
@clear
@echo "Hello $(LOGNAME), nothing to do by default"
@echo "Try 'make help'"
all: copy_settings virtualenv install create_database loaddata # target: help - Display callable targets.
help:
@clear
@egrep "^# target:" [Mm]akefile
copy_settings: # target: build - Build all docker containers, defined in docker-compose.yml
cp $(PROJECT_DIR)/project/local_settings.py.skeleton $(PROJECT_DIR)/project/local_settings.py build:
docker-compose build
virtualenv: # target: build-stage - Build all docker containers, defined in docker-compose.stage.yml
virtualenv -p python3 $(VENV_DIR) --no-site-packages build-stage:
docker-compose build -f docker-compose.stage.yml
install: requirements # target: virtualenv - Make virtualenv
virtualenv:
virtualenv -p python3 env --no-site-packages
requirements: # target: requirements-local - Install requirements for local develop
$(PIP) install -r $(PROJECT_DIR)/requirements/local.txt requirements-local:
$(PIP) install -r requirements/local.txt
# target: loaddata - Load fixtures
loaddata: loaddata:
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/myauth/fixtures/myauth.json python src/manage.py loaddata src/myauth/fixtures/myauth.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/commons/fixtures/cms.json python src/manage.py loaddata src/commons/fixtures/cms.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/commons/fixtures/djangocms_text_ckeditor.json python src/manage.py loaddata src/commons/fixtures/djangocms_text_ckeditor.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/commons/fixtures/sites.json python src/manage.py loaddata src/commons/fixtures/sites.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/customer/fixtures/price.json python src/manage.py loaddata src/customer/fixtures/price.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/docs/fixtures/country.json python src/manage.py loaddata src/docs/fixtures/country.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/docs/fixtures/currency.json python src/manage.py loaddata src/docs/fixtures/currency.json
$(PYTHON) src/manage.py loaddata $(PROJECT_DIR)/src/docs/fixtures/measure.json python src/manage.py loaddata src/docs/fixtures/measure.json
create_database: # target: run - Runserver
$(PYTHON) src/manage.py migrate
run: run:
$(PYTHON) src/manage.py runserver 0.0.0.0:8000 python src/manage.py runserver 0.0.0.0:8000
migrations:
$(PYTHON) src/manage.py makemigrations
# target: migrate - Build all docker containers, defined in docker-compose.stage.yml
migrate: migrate:
$(PYTHON) src/manage.py migrate python src/manage.py migrate myauth
python src/manage.py migrate
# target: shell - Run python shell
shell: shell:
$(PYTHON) src/manage.py shell python src/manage.py shell
# target: collectstatic - Run collectstatic
collectstatic:
python manage.py collectstatic --noinput
clean_temp: clean_temp:
find . -name '*.pyc' -delete find . -name '*.pyc' -delete
@ -54,4 +67,5 @@ clean_db:
clean_venv: clean_venv:
rm -rf $(VENV_DIR) rm -rf $(VENV_DIR)
clean: clean_temp clean_venv clean_db # target: clean - clean all temp files
clean: clean_temp clean_venv clean_db

@ -56,34 +56,3 @@ make run
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
make -f DockerMakefile migrate
```
Далее заполните данными
```bash
make -f DockerMakefile loaddata
```
###Команды для докера
#### Остановка докера
```bash
make -f DockerMakefle stop
```
#### Запуск докера
```bash
make -f DockerMakefle start
```
## Установка production версии

@ -1,6 +0,0 @@
#!/usr/bin/env bash
make -f DockerMakefile build
make -f DockerMakefile up
# fix pause runtime
#make -f DockerMakefile loaddata

@ -24,7 +24,7 @@ services:
restart: always restart: always
build: build:
context: . context: .
dockerfile: compose/Dockerfile.web.local dockerfile: conf/compose/Dockerfile.web.local
command: bash -c 'cd src && celery -A dokumentor worker -l info -E' command: bash -c 'cd src && celery -A dokumentor worker -l info -E'
volumes: volumes:
- .:/code - .:/code
@ -49,11 +49,11 @@ services:
restart: always restart: always
build: build:
context: . context: .
dockerfile: compose/Dockerfile.web.local dockerfile: conf/compose/Dockerfile.web.local
command: bash -c '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
entrypoint: bin/docker-local-entrypoint.sh entrypoint: conf/docker/entrypoint_production.sh
ports: ports:
- "18001:8000" - "18001:8000"
env_file: conf/env env_file: conf/env

@ -25,7 +25,7 @@ services:
restart: always restart: always
build: build:
context: . context: .
dockerfile: compose/Dockerfile.web.local dockerfile: conf/compose/Dockerfile.web.local
command: bash -c 'cd src && celery -A dokumentor worker -l info -E' command: bash -c 'cd src && celery -A dokumentor worker -l info -E'
volumes: volumes:
- .:/code - .:/code
@ -50,11 +50,11 @@ services:
restart: always restart: always
build: build:
context: . context: .
dockerfile: compose/Dockerfile.web.local dockerfile: conf/compose/Dockerfile.web.local
command: bash -c '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
entrypoint: bin/docker-local-entrypoint.sh entrypoint: conf/docker/entrypoint.sh
ports: ports:
- "8000:8000" - "8000:8000"
env_file: conf/env env_file: conf/env

Loading…
Cancel
Save