From 3cbbebb61b08ec577fbaebd2a623cdc8390feb93 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 7 Feb 2022 22:27:59 +0100 Subject: [PATCH] remove the docker development environment It's just easier to have the stuff in a venv --- Makefile | 93 +++++++++++++++-------- docker-compose-development.yml | 24 +----- network_inventory/settings/local.py | 17 +++-- network_inventory/settings/local_flake.py | 27 ------- 4 files changed, 78 insertions(+), 83 deletions(-) delete mode 100644 network_inventory/settings/local_flake.py diff --git a/Makefile b/Makefile index fc5f669..4acdde5 100644 --- a/Makefile +++ b/Makefile @@ -1,46 +1,79 @@ SHELL=/usr/bin/env bash -.PHONY: docker +.DEFAULT_GOAL := run -docker: - export DJANGO_SETTINGS_MODULE=network_inventory.settings.docker; \ - docker-compose -f docker-compose-development.yml up +.PHONY: run +run: setup + export DJANGO_SETTINGS_MODULE=network_inventory.settings.local; \ + $(find . -name __pycache__ -o -name "*.pyc" -delete) \ + python manage.py runserver; \ -init: - export DJANGO_SETTINGS_MODULE=network_inventory.settings.docker; \ - docker-compose -f docker-compose-development.yml run web python manage.py loaddata network_inventory.yaml +.PHONY: setup +setup: ./venv + ( \ + source venv/bin/activate; \ + export DJANGO_SETTINGS_MODULE=network_inventory.settings.local; \ + docker-compose -f docker-compose-development.yml up -d; \ + if [ -f .second_run ]; then \ + sleep 2; \ + python manage.py collectstatic --noinput; \ + python manage.py makemigrations; \ + python manage.py migrate; \ + else \ + python manage.py collectstatic --noinput; \ + python manage.py makemigrations backups; \ + python manage.py makemigrations computers; \ + python manage.py makemigrations core; \ + python manage.py makemigrations customers; \ + python manage.py makemigrations devices; \ + python manage.py makemigrations licenses; \ + python manage.py makemigrations nets; \ + python manage.py makemigrations softwares; \ + python manage.py makemigrations users; \ + python manage.py makemigrations; \ + python manage.py migrate; \ + python manage.py loaddata backups; \ + python manage.py loaddata computers; \ + python manage.py loaddata core; \ + python manage.py loaddata devices; \ + python manage.py loaddata nets; \ + python manage.py loaddata softwares; \ + python manage.py shell -c "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('admin', 'admin@example.com', 'password')"; \ + touch .second_run; \ + fi; \ + ) -test: - docker-compose -f docker-compose-development.yml run web pytest -nauto --nomigrations --cov=. --cov-report=html - -debug: - docker-compose -f docker-compose-development.yml run web pytest --pdb --nomigrations --cov=. --cov-report=html - -local: +./venv: python3 -m venv venv ( \ source venv/bin/activate; \ pip3 install -r requirements/local.txt; \ ) -testlocal: - ( \ - source venv/bin/activate; \ - pytest -nauto --ds=network_inventory.settings.local --nomigrations --cov=. --cov-report=html; \ - ) - - +.PHONY: clean clean: docker-compose -f docker-compose-development.yml down -v - sudo find . \( -name __pycache__ -o -name "*.pyc" \) -delete - sudo rm -rf htmlcov/ - sudo rm -f */migrations/0*.py - sudo rm .second_run + find . \( -name __pycache__ -o -name "*.pyc" \) -delete + rm -rf htmlcov/ + rm -f */migrations/0*.py + rm .second_run -cleanall: +.PHONY: cleanall +cleanall: clean docker-compose -f docker-compose-development.yml down -v --rmi local rm -rf venv/ - sudo find . \( -name __pycache__ -o -name "*.pyc" \) -delete - sudo rm -rf htmlcov/ - sudo rm -f */migrations/*.py - sudo rm .second_run + +.PHONY: init +init: + export DJANGO_SETTINGS_MODULE=network_inventory.settings.local; \ + python manage.py loaddata network_inventory.yaml + +.PHONY: test +test: + export DJANGO_SETTINGS_MODULE=network_inventory.settings.local; \ + pytest -nauto --nomigrations --cov=. --cov-report=html + +.PHONY: debug +debug: + export DJANGO_SETTINGS_MODULE=network_inventory.settings.local; \ + pytest --pdb --nomigrations --cov=. --cov-report=html diff --git a/docker-compose-development.yml b/docker-compose-development.yml index 1d906a0..0a691ca 100644 --- a/docker-compose-development.yml +++ b/docker-compose-development.yml @@ -7,27 +7,9 @@ services: db: image: postgres environment: - - POSTGRES_DB - - POSTGRES_PASSWORD + - POSTGRES_DB=network_inventory + - POSTGRES_PASSWORD=password volumes: - db_data:/var/lib/postgresql/data/ - - web: - build: . - volumes: - - .:/code - environment: - - DJANGO_SETTINGS_MODULE - - DJANGO_DEBUG - - DJANGO_SECRET_KEY - depends_on: - - db - - nginx: - build: ./nginx ports: - - 8080:80 - depends_on: - - web - volumes: - - ./static:/home/app/web/static + - "5432:5432" diff --git a/network_inventory/settings/local.py b/network_inventory/settings/local.py index d6b3226..c4e3f51 100644 --- a/network_inventory/settings/local.py +++ b/network_inventory/settings/local.py @@ -5,16 +5,23 @@ ALLOWED_HOSTS = [ '127.0.0.1', ] -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'development_key' +CSRF_TRUSTED_ORIGINS = [ + 'http://localhost:8000', +] + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = "foo" -# SECURITY WARNING: don't run with debug turned on in production! DEBUG = True CRISPY_FAIL_SILENTLY = not DEBUG DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': ':memory:', + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'postgres', + 'USER': 'postgres', + 'HOST': 'localhost', + 'PORT': 5432, + 'PASSWORD': 'password', } } diff --git a/network_inventory/settings/local_flake.py b/network_inventory/settings/local_flake.py deleted file mode 100644 index c4e3f51..0000000 --- a/network_inventory/settings/local_flake.py +++ /dev/null @@ -1,27 +0,0 @@ -from .base import * - -ALLOWED_HOSTS = [ - 'localhost', - '127.0.0.1', -] - -CSRF_TRUSTED_ORIGINS = [ - 'http://localhost:8000', -] - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = "foo" - -DEBUG = True -CRISPY_FAIL_SILENTLY = not DEBUG - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql', - 'NAME': 'postgres', - 'USER': 'postgres', - 'HOST': 'localhost', - 'PORT': 5432, - 'PASSWORD': 'password', - } -}