[chore] Improvements in docker structure
This commit is contained in:
@@ -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",
|
||||
),
|
||||
]
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
server {
|
||||
listen 3000;
|
||||
|
||||
location / {
|
||||
root /usr/share/nginx/html/;
|
||||
include /etc/nginx/mime.types;
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
}
|
||||
@@ -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/;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user