CONFIG: preparar dockerfile y compose para gitea vps
This commit is contained in:
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
# ========================================
|
# ========================================
|
||||||
# Variables de Entorno (Plantilla)
|
# Variables de Entorno (Plantilla)
|
||||||
# ========================================
|
# ========================================
|
||||||
DEBUG=True
|
DEBUG=False
|
||||||
SECRET_KEY=django-insecure-r9n6j1_h%@uqoz0bjz^mq=t72o0t*j@84jpl%_i4^qu%&+**u7
|
SECRET_KEY=coloca_aqui_una_clave_larga_y_secreta
|
||||||
ALLOWED_HOSTS=*
|
ALLOWED_HOSTS=midominio.com,localhost,127.0.0.1
|
||||||
|
|
||||||
# === CONFIGURACIÓN LOCAL (Para usar start.sh sin Docker) ===
|
# === CONFIGURACIÓN LOCAL (Para usar start.sh sin Docker) ===
|
||||||
# Deja estas variables vacías o comentadas para usar SQLite y Memory Channel.
|
# Deja estas variables vacías o comentadas para usar SQLite y Memory Channel.
|
||||||
|
|||||||
+7
-2
@@ -23,5 +23,10 @@ COPY . /app/
|
|||||||
# Exponer el puerto
|
# Exponer el puerto
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
# Comando por defecto para iniciar Daphne (ASGI)
|
# Crear un usuario no-root por seguridad
|
||||||
CMD ["daphne", "-b", "0.0.0.0", "-p", "8000", "config.asgi:application"]
|
RUN adduser --disabled-password --no-create-home djangouser
|
||||||
|
RUN chown -R djangouser:djangouser /app
|
||||||
|
USER djangouser
|
||||||
|
|
||||||
|
# Comando por defecto para iniciar Gunicorn con Uvicorn workers (Producción)
|
||||||
|
CMD ["gunicorn", "config.asgi:application", "-k", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000", "--workers", "3"]
|
||||||
|
|||||||
+10
-19
@@ -1,18 +1,6 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
|
||||||
image: postgres:15-alpine
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: efintel_db
|
|
||||||
POSTGRES_USER: efintel_user
|
|
||||||
POSTGRES_PASSWORD: efintel_password
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
volumes:
|
|
||||||
- postgres_data:/var/lib/postgresql/data
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:7-alpine
|
image: redis:7-alpine
|
||||||
ports:
|
ports:
|
||||||
@@ -20,10 +8,12 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- redis_data:/data
|
- redis_data:/data
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
mem_limit: 512m # Limita Redis a 512MB de memoria RAM
|
||||||
|
|
||||||
web:
|
web:
|
||||||
build: .
|
build: .
|
||||||
command: daphne -b 0.0.0.0 -p 8000 config.asgi:application
|
# Se sobrescribe el comando para asegurarnos que usa Gunicorn (así esté en el Dockerfile)
|
||||||
|
command: gunicorn config.asgi:application -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 --workers 3
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/app
|
||||||
ports:
|
ports:
|
||||||
@@ -31,32 +21,33 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL: postgres://efintel_user:efintel_password@db:5432/efintel_db
|
# Ya no conectamos a una DB local, lee el DATABASE_URL del .env
|
||||||
REDIS_URL: redis://redis:6379/0
|
REDIS_URL: redis://redis:6379/0
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
|
||||||
- redis
|
- redis
|
||||||
|
restart: unless-stopped
|
||||||
|
mem_limit: 1g # Limita Gunicorn a 1GB
|
||||||
|
|
||||||
tax-api:
|
tax-api:
|
||||||
build: ./tax_api
|
build: ./tax_api
|
||||||
ports:
|
ports:
|
||||||
- "8001:8000"
|
- "8001:8000"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
mem_limit: 256m
|
||||||
|
|
||||||
celery:
|
celery:
|
||||||
build: .
|
build: .
|
||||||
command: celery -A config worker -l info
|
command: celery -A config worker -l info --concurrency=2
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/app
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL: postgres://efintel_user:efintel_password@db:5432/efintel_db
|
|
||||||
REDIS_URL: redis://redis:6379/0
|
REDIS_URL: redis://redis:6379/0
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
|
||||||
- redis
|
- redis
|
||||||
|
restart: unless-stopped
|
||||||
|
mem_limit: 512m # Limita Celery a 512MB
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres_data:
|
|
||||||
redis_data:
|
redis_data:
|
||||||
|
|||||||
@@ -55,3 +55,5 @@ whitenoise==6.7.0
|
|||||||
django-storages==2.14.2
|
django-storages==2.14.2
|
||||||
boto3==1.34.69
|
boto3==1.34.69
|
||||||
requests==2.31.0
|
requests==2.31.0
|
||||||
|
uvicorn[standard]
|
||||||
|
gunicorn
|
||||||
|
|||||||
Reference in New Issue
Block a user