[chore] Improvements in docker structure

This commit is contained in:
ITQ
2024-04-01 14:06:30 +03:00
parent b88ae25d67
commit 0fa37bf7fc
6 changed files with 71 additions and 45 deletions
+25
View File
@@ -1,6 +1,31 @@
from django.urls import include, path
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework import permissions
schema_view = get_schema_view(
openapi.Info(title="SkillHub API", default_version="v1"),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
path("ping", include("api.ping.urls")),
path("auth", include("api.users.urls")),
# API documentation
path(
"swagger<format>/",
schema_view.without_ui(cache_timeout=0),
name="schema-json",
),
path(
"swagger/",
schema_view.with_ui("swagger", cache_timeout=0),
name="schema-swagger-ui",
),
path(
"redoc/",
schema_view.with_ui("redoc", cache_timeout=0),
name="schema-redoc",
),
]
-26
View File
@@ -1,16 +1,6 @@
from django.conf import settings
from django.contrib import admin
from django.urls import include, path
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework import permissions
schema_view = get_schema_view(
openapi.Info(title="SkillHub API", default_version="v1"),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
# Built-in urls
@@ -22,22 +12,6 @@ urlpatterns = [
namespace="rest_framework",
),
),
# API documentation
path(
"swagger<format>/",
schema_view.without_ui(cache_timeout=0),
name="schema-json",
),
path(
"swagger/",
schema_view.with_ui("swagger", cache_timeout=0),
name="schema-swagger-ui",
),
path(
"redoc/",
schema_view.with_ui("redoc", cache_timeout=0),
name="schema-redoc",
),
# API
path("api/", include("api.urls")),
]
+23 -8
View File
@@ -21,6 +21,9 @@ services:
backend:
build: ./backend
container_name: backend
volumes:
- media_volume:/app/project/media/
- static_volume:/app/project/static/
depends_on:
postgres:
condition: service_healthy
@@ -35,18 +38,28 @@ services:
DJANGO_DEBUG: ${DJANGO_DEBUG:-false}
DJANGO_ALLOWED_HOSTS: ${DJANGO_ALLOWED_HOSTS:-*}
DJANGO_INTERNAL_IPS: ${DJANGO_INTERNAL_IPS:-127.0.0.1}
command: ["sh", "-c", "cd project && python manage.py migrate && gunicorn config.wsgi:application --bind 0.0.0.0:8080"]
ports:
- 8080:8080
frontend:
container_name: frontend
expose:
- 8080
command:
[
"sh",
"-c",
"cd project && python manage.py collectstatic --noinput && python manage.py migrate && gunicorn config.wsgi:application --bind 0.0.0.0:8080",
]
nginx:
container_name: nginx
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "3000:3000"
restart: always
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- media_volume:/var/html/media/
- static_volume:/var/html/static/
depends_on:
- backend
pgadmin:
image: dpage/pgadmin4:8.4
@@ -66,3 +79,5 @@ services:
volumes:
postgres_data:
pgadmin_data:
media_volume:
static_volume:
-2
View File
@@ -15,5 +15,3 @@ RUN npm run build
FROM nginx:stable-alpine3.17-slim
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
-9
View File
@@ -1,9 +0,0 @@
server {
listen 3000;
location / {
root /usr/share/nginx/html/;
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.html;
}
}
+23
View File
@@ -0,0 +1,23 @@
server {
listen 80;
server_tokens off;
location /api/ {
proxy_pass http://backend:8080/api/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location / {
root /usr/share/nginx/html/;
index index.html;
try_files $uri $uri/ /index.html;
}
location /media/ {
root /var/html/;
}
location /static/ {
root /var/html/;
}
}