mirror of
https://github.com/Ai-hack-MAGNUM-OPUS/backend.git
synced 2024-11-23 08:43:44 +03:00
added docker image
This commit is contained in:
parent
522a733c35
commit
8beb76fa77
17
Dockerfile
Normal file
17
Dockerfile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
FROM python:3.10-alpine
|
||||||
|
|
||||||
|
# Set environment variables
|
||||||
|
ENV PYTHONUNBUFFERED 1
|
||||||
|
|
||||||
|
COPY ./requirements/base.txt .
|
||||||
|
COPY ./requirements/production.txt .
|
||||||
|
RUN apk add --update --no-cache postgresql-client jpeg-dev
|
||||||
|
RUN apk add --update --no-cache --virtual .tmp-build-deps \
|
||||||
|
gcc libc-dev linux-headers postgresql-dev musl-dev zlib zlib-dev
|
||||||
|
RUN pip install -r /production.txt
|
||||||
|
RUN apk del .tmp-build-deps
|
||||||
|
|
||||||
|
|
||||||
|
RUN mkdir /app
|
||||||
|
COPY ./app /app
|
||||||
|
WORKDIR /app
|
|
@ -31,14 +31,18 @@ LOCALE_PATHS = [str(APPS_DIR / "locale")]
|
||||||
# DATABASES
|
# DATABASES
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# https://docs.djangoproject.com/en/dev/ref/settings/#databases
|
# https://docs.djangoproject.com/en/dev/ref/settings/#databases
|
||||||
import dj_database_url
|
|
||||||
|
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
"default": dj_database_url.config(
|
'default': {
|
||||||
conn_max_age=600, default="postgres://postgres:debug@127.0.0.1:5432/db"
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||||
)
|
'NAME': 'postgres',
|
||||||
|
'USER': 'postgres',
|
||||||
|
'PASSWORD': 'postgres',
|
||||||
|
'HOST': 'db',
|
||||||
|
'PORT': 5432,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-DEFAULT_AUTO_FIELD
|
# https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-DEFAULT_AUTO_FIELD
|
||||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||||
|
|
||||||
|
@ -199,11 +203,11 @@ CORS_ALLOW_ALL_ORIGINS = True
|
||||||
|
|
||||||
|
|
||||||
# Celery
|
# Celery
|
||||||
CELERY_BROKER_URL = "redis://localhost:6379/0"
|
CELERY_BROKER_URL = "redis://redis:6379"
|
||||||
|
CELERY_RESULT_BACKEND = "redis://redis:6379"
|
||||||
CELERY_TIMEZONE = "Europe/Moscow"
|
CELERY_TIMEZONE = "Europe/Moscow"
|
||||||
CELERY_TASK_TRACK_STARTED = True
|
CELERY_TASK_TRACK_STARTED = True
|
||||||
CELERY_TASK_TIME_LIMIT = 30 * 60
|
CELERY_TASK_TIME_LIMIT = 30 * 60
|
||||||
CELERY_ACCEPT_CONTENT = ["json"]
|
CELERY_ACCEPT_CONTENT = ["json"]
|
||||||
CELERY_TASK_SERIALIZER = "json"
|
CELERY_TASK_SERIALIZER = "json"
|
||||||
CELERY_RESULT_SERIALIZER = "json"
|
CELERY_RESULT_SERIALIZER = "json"
|
||||||
CELERY_RESULT_BACKEND = "django-db"
|
|
|
@ -25,18 +25,6 @@ CACHES = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# django-debug-toolbar
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#prerequisites
|
|
||||||
INSTALLED_APPS += ["debug_toolbar"]
|
|
||||||
# https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#middleware
|
|
||||||
MIDDLEWARE += ["debug_toolbar.middleware.DebugToolbarMiddleware"] # noqa F405
|
|
||||||
# https://django-debug-toolbar.readthedocs.io/en/latest/configuration.html#debug-toolbar-config
|
|
||||||
DEBUG_TOOLBAR_CONFIG = {
|
|
||||||
"DISABLE_PANELS": ["debug_toolbar.panels.redirects.RedirectsPanel"],
|
|
||||||
"SHOW_TEMPLATE_CONTEXT": True,
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#internal-ips
|
# https://django-debug-toolbar.readthedocs.io/en/latest/installation.html#internal-ips
|
||||||
INTERNAL_IPS = ["127.0.0.1"]
|
INTERNAL_IPS = ["127.0.0.1"]
|
||||||
|
|
|
@ -39,8 +39,3 @@ urlpatterns = [
|
||||||
name="schema-redoc",
|
name="schema-redoc",
|
||||||
),
|
),
|
||||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
||||||
if settings.DEBUG:
|
|
||||||
import debug_toolbar
|
|
||||||
|
|
||||||
urlpatterns = [path("__debug__/", include(debug_toolbar.urls))] + urlpatterns
|
|
|
@ -1,20 +1,42 @@
|
||||||
version: "3"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
web:
|
||||||
image: "postgres"
|
build: .
|
||||||
container_name: "postgres"
|
ports:
|
||||||
environment:
|
- "8000:8000"
|
||||||
- POSTGRES_HOST=postgres
|
volumes:
|
||||||
- POSTGRES_PORT=5432
|
- .:/code
|
||||||
- POSTGRES_DB=db
|
command: >
|
||||||
- POSTGRES_USER=debug
|
sh -c "python3 manage.py makemigrations &&
|
||||||
- POSTGRES_PASSWORD=debug
|
python3 manage.py migrate --noinput &&
|
||||||
|
python3 manage.py loaddata paragraphtypes.json &&
|
||||||
|
python3 manage.py runserver 0.0.0.0:8000"
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
db:
|
||||||
|
image: postgres:14-alpine
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data/
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
|
environment:
|
||||||
network_mode: "host"
|
- "POSTGRES_HOST_AUTH_METHOD=trust"
|
||||||
|
- "POSTGRES_DB=db"
|
||||||
|
- "POSTGRES_USER=postgres"
|
||||||
|
- "POSTGRES_PASSWORD=postgres"
|
||||||
redis:
|
redis:
|
||||||
image: "redis:alpine"
|
image: redis:alpine
|
||||||
ports:
|
celery:
|
||||||
- "6379:6379"
|
restart: always
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
command: celery -A conf worker --loglevel=INFO
|
||||||
|
volumes:
|
||||||
|
- ./app:/app
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
- web
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
|
@ -6,7 +6,6 @@ djangorestframework==3.13.1
|
||||||
djangorestframework-simplejwt==5.2.0
|
djangorestframework-simplejwt==5.2.0
|
||||||
django-health-check==3.16.5
|
django-health-check==3.16.5
|
||||||
django-cors-headers==3.13.0
|
django-cors-headers==3.13.0
|
||||||
drf-yasg==1.21.3
|
|
||||||
celery==5.2.7
|
celery==5.2.7
|
||||||
Redis==4.3.4
|
Redis==4.3.4
|
||||||
django_celery_results==2.4.0
|
django_celery_results==2.4.0
|
||||||
|
@ -16,4 +15,5 @@ dj-database-url
|
||||||
uuid
|
uuid
|
||||||
docx2txt
|
docx2txt
|
||||||
python-docx
|
python-docx
|
||||||
requests-async
|
requests-async
|
||||||
|
drf-yasg[validation]
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
-r base.txt
|
-r base.txt
|
||||||
|
|
||||||
gunicorn==20.1.0
|
gunicorn==20.1.0
|
||||||
psycopg2==2.9.3
|
psycopg2-binary==2.9.3
|
||||||
|
|
Loading…
Reference in New Issue
Block a user