From ecfca080f015cc66b454d68a0a60c3716cc1bb29 Mon Sep 17 00:00:00 2001 From: stackia Date: Mon, 16 Mar 2020 21:45:13 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E5=B0=86=E8=AF=B8=E5=A4=9A=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=A1=B9=E5=8F=98=E4=B8=BA=E4=BB=8E=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E8=AF=BB=E5=8F=96=EF=BC=8C=E4=BE=BF=E4=BA=8E?= =?UTF-8?q?=E5=90=8E=E7=BB=AD=E6=94=AF=E6=8C=81=20Docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DJANGO_DEBUG DJANGO_SECRET_KEY DJANGO_MYSQL_DATABASE DJANGO_MYSQL_USER DJANGO_MYSQL_PASSWORD DJANGO_MYSQL_HOST DJANGO_MYSQL_PORT DJANGO_MEMCACHED_ENABLE DJANGO_MEMCACHED_LOCATION DJANGO_BAIDU_NOTIFY_URL DJANGO_EMAIL_TLS DJANGO_EMAIL_SSL DJANGO_EMAIL_HOST DJANGO_EMAIL_PORT DJANGO_EMAIL_USER DJANGO_EMAIL_PASSWORD DJANGO_ADMIN_EMAIL DJANGO_WXADMIN_PASSWORD DJANGO_WEROBOT_TOKEN --- .gitignore | 2 + DjangoBlog/settings.py | 48 +++++++++++++----------- docker-support/dev-environment-setup.yml | 21 +++++++++++ servermanager/robot.py | 2 +- 4 files changed, 50 insertions(+), 23 deletions(-) create mode 100644 docker-support/dev-environment-setup.yml diff --git a/.gitignore b/.gitignore index 9aa5e14..b507a4a 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,8 @@ target/ .idea .iml +# virtualenv +venv/ migrations/ !migrations/__init__.py diff --git a/DjangoBlog/settings.py b/DjangoBlog/settings.py index 6d2decd..d8339bc 100644 --- a/DjangoBlog/settings.py +++ b/DjangoBlog/settings.py @@ -12,17 +12,23 @@ https://docs.djangoproject.com/en/1.10/ref/settings/ import sys import os + +def env_to_bool(env, default): + str_val = os.environ.get(env) + return default if str_val is None else str_val == 'True' + + # Build paths inside the project like this: os.path.join(BASE_DIR, ...) + BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'n9ceqv38)#&mwuat@(mjb_p%em$e8$qyr#fw9ot!=ba6lijx-6' - +SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY') or 'n9ceqv38)#&mwuat@(mjb_p%em$e8$qyr#fw9ot!=ba6lijx-6' # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = env_to_bool('DJANGO_DEBUG', True) # DEBUG = False TESTING = len(sys.argv) > 1 and sys.argv[1] == 'test' @@ -98,11 +104,11 @@ WSGI_APPLICATION = 'DjangoBlog.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'djangoblog', - 'USER': os.environ.get('DJANGO_MYSQL_USER'), - 'PASSWORD': os.environ.get('DJANGO_MYSQL_PASSWORD'), - 'HOST': os.environ.get('DJANGO_MYSQL_HOST'), - 'PORT': 3306, + 'NAME': os.environ.get('DJANGO_MYSQL_DATABASE') or 'djangoblog', + 'USER': os.environ.get('DJANGO_MYSQL_USER') or 'root', + 'PASSWORD': os.environ.get('DJANGO_MYSQL_PASSWORD') or 'djangoblog_123', + 'HOST': os.environ.get('DJANGO_MYSQL_HOST') or '127.0.0.1', + 'PORT': int(os.environ.get('DJANGO_MYSQL_PORT') or 3306), 'OPTIONS': {'charset': 'utf8mb4'}, } } @@ -177,11 +183,10 @@ CACHE_CONTROL_MAX_AGE = 2592000 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', - 'LOCATION': '127.0.0.1:11211', + 'LOCATION': os.environ.get('DJANGO_MEMCACHED_LOCATION') or '127.0.0.1:11211', 'KEY_PREFIX': 'django_test' if TESTING else 'djangoblog', 'TIMEOUT': 60 * 60 * 10 - }, - 'locmemcache': { + } if env_to_bool('DJANGO_MEMCACHED_ENABLE', True) else { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 10800, 'LOCATION': 'unique-snowflake', @@ -189,24 +194,23 @@ CACHES = { } SITE_ID = 1 -BAIDU_NOTIFY_URL = "http://data.zz.baidu.com/urls?site=https://www.lylinux.net&token=1uAOGrMsUm5syDGn" +BAIDU_NOTIFY_URL = os.environ.get('DJANGO_BAIDU_NOTIFY_URL') \ + or 'http://data.zz.baidu.com/urls?site=https://www.lylinux.net&token=1uAOGrMsUm5syDGn' -# Emial: +# Email: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' - -# EMAIL_USE_TLS = True -EMAIL_USE_SSL = True - -EMAIL_HOST = 'smtp.mxhichina.com' -EMAIL_PORT = 465 +EMAIL_USE_TLS = env_to_bool('DJANGO_EMAIL_TLS', False) +EMAIL_USE_SSL = env_to_bool('DJANGO_EMAIL_SSL', True) +EMAIL_HOST = os.environ.get('DJANGO_EMAIL_HOST') or 'smtp.mxhichina.com' +EMAIL_PORT = int(os.environ.get('DJANGO_EMAIL_PORT') or 465) EMAIL_HOST_USER = os.environ.get('DJANGO_EMAIL_USER') EMAIL_HOST_PASSWORD = os.environ.get('DJANGO_EMAIL_PASSWORD') DEFAULT_FROM_EMAIL = EMAIL_HOST_USER -SERVER_EMAIL = os.environ.get('DJANGO_EMAIL_USER') +SERVER_EMAIL = EMAIL_HOST_USER # Setting debug=false did NOT handle except email notifications -ADMINS = [('admin', 'admin@admin.com')] +ADMINS = [('admin', os.environ.get('DJANGO_ADMIN_EMAIL') or 'admin@admin.com')] # WX ADMIN password(Two times md5) -WXADMIN = '995F03AC401D6CABABAEF756FC4D43C7' +WXADMIN = os.environ.get('DJANGO_WXADMIN_PASSWORD') or '995F03AC401D6CABABAEF756FC4D43C7' LOGGING = { 'version': 1, diff --git a/docker-support/dev-environment-setup.yml b/docker-support/dev-environment-setup.yml new file mode 100644 index 0000000..cd9028d --- /dev/null +++ b/docker-support/dev-environment-setup.yml @@ -0,0 +1,21 @@ +version: '3' +services: + mysql: + image: mysql:5.7 + restart: always + environment: + MYSQL_ROOT_PASSWORD: djangoblog_123 + MYSQL_DATABASE: djangoblog + volumes: + - mysql:/var/lib/mysql + ports: + - '3306:3306' + command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci + memcached: + image: memcached:1.6-alpine + restart: always + ports: + - '11211:11211' + command: memcached -m 64 +volumes: + mysql: ~ diff --git a/servermanager/robot.py b/servermanager/robot.py index 8834a42..fbee94c 100644 --- a/servermanager/robot.py +++ b/servermanager/robot.py @@ -26,7 +26,7 @@ from django.conf import settings import jsonpickle from servermanager.models import commands -robot = WeRoBot(token='lylinux', enable_session=True) +robot = WeRoBot(token=os.environ.get('DJANGO_WEROBOT_TOKEN') or 'lylinux', enable_session=True) memstorage = MemcacheStorage() if memstorage.is_available: robot.config['SESSION_STORAGE'] = memstorage