mirror of
				https://github.com/Ai-hack-MAGNUM-OPUS/backend.git
				synced 2025-10-25 13:01:06 +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 | ||||||
|  | @ -17,3 +16,4 @@ 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