diff --git a/Dockerfile b/Dockerfile index 6551f656b..61a4afaff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,10 +25,13 @@ WORKDIR /var/interlegis/sapl/ ADD . /var/interlegis/sapl/ COPY start.sh /var/interlegis/sapl/ +COPY config/env-dockerfile /var/interlegis/sapl/sapl/.env RUN chmod +x /var/interlegis/sapl/start.sh RUN pip install -r /var/interlegis/sapl/requirements/requirements.txt --upgrade setuptools -VOLUME ["/var/interlegis/sapl/data", "/var/interlegis/sapl/media", "/var/interlegis/sapl/collected_static"] +RUN python3 manage.py bower install && python3 manage.py collectstatic --no-input + +VOLUME ["/var/interlegis/sapl/data", "/var/interlegis/sapl/media"] ENTRYPOINT ["/var/interlegis/sapl/start.sh"] diff --git a/config/env-dockerfile b/config/env-dockerfile new file mode 100644 index 000000000..fe6b68d65 --- /dev/null +++ b/config/env-dockerfile @@ -0,0 +1,12 @@ +DATABASE_URL = postgresql://sapl:sapl@localhost:5432/sapl +SECRET_KEY=0x+c_w3_s@hf5ls*+n8cdp1)n_kq#d6k8m=admcw7jojtbaqw8 +DEBUG=False +DOCKER_FILE=True +EMAIL_USE_TLS = True +EMAIL_PORT = 587 +EMAIL_HOST = +EMAIL_HOST_USER = +EMAIL_HOST_PASSWORD = +EMAIL_SEND_USER = +DEFAULT_FROM_EMAIL = +SERVER_EMAIL = diff --git a/sapl/settings.py b/sapl/settings.py index 11b94b3de..baee28762 100644 --- a/sapl/settings.py +++ b/sapl/settings.py @@ -14,6 +14,7 @@ See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ """ import logging +import os from decouple import config from dj_database_url import parse as db_url @@ -31,6 +32,8 @@ SECRET_KEY = config('SECRET_KEY', default='') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = config('DEBUG', default=False, cast=bool) +DOCKER_FILE = config('DOCKER_FILE', default=False, cast=bool) + MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' ALLOWED_HOSTS = ['*'] @@ -160,13 +163,20 @@ WSGI_APPLICATION = 'sapl.wsgi.application' # Database # https://docs.djangoproject.com/en/1.8/ref/settings/#databases - -DATABASES = { - 'default': config( - 'DATABASE_URL', default='sqlite://:memory:', - cast=db_url, - ) -} +if DOCKER_FILE: + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(PROJECT_DIR, 'sapl.db'), + } + } +else: + DATABASES = { + 'default': config( + 'DATABASE_URL', default='sqlite://:memory:', + cast=db_url, + ) + } # troque no caso de reimplementação da classe User conforme # https://docs.djangoproject.com/en/1.9/topics/auth/customizing/#substituting-a-custom-user-model diff --git a/start.sh b/start.sh index 250be13ea..640ee1d26 100755 --- a/start.sh +++ b/start.sh @@ -40,13 +40,15 @@ create_env() { create_env -python3 manage.py bower install +# python3 manage.py bower install + +echo 'DATABASE: '$DATABASE_URL /bin/sh busy-wait.sh $DATABASE_URL python3 manage.py migrate -python3 manage.py collectstatic --no-input -python3 manage.py rebuild_index --noinput +# python3 manage.py collectstatic --no-input +python3 manage.py rebuild_index --noinput & user_created=$(python3 create_admin.py 2>&1) @@ -58,12 +60,12 @@ lack_pwd=$? if [ $user_exists -eq 0 ]; then echo "[SUPERUSER CREATION] User admin already exists. Not creating" -fi - +fi + if [ $lack_pwd -eq 0 ]; then - echo "[SUPERUSER] Environment variable $ADMIN_PASSWORD for superuser admin was not set. Leaving container" + echo "[SUPERUSER] Environment variable ADMIN_PASSWORD for superuser admin was not set. Leaving container" # return -1 -fi +fi /bin/sh gunicorn_start.sh no-venv