35 lines
829 B
Docker
35 lines
829 B
Docker
|
|
FROM python:3.11-slim
|
|
|
|
WORKDIR /backup_service
|
|
|
|
# Instalar dependencias del sistema:
|
|
# - default-mysql-client → provee mysqldump y mysqladmin
|
|
# - gcc / pkg-config → para compilar algunas dependencias de Python
|
|
RUN apt-get update && apt-get install -y \
|
|
default-mysql-client \
|
|
gcc \
|
|
pkg-config \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copiar e instalar dependencias Python
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copiar el código
|
|
COPY main.py .
|
|
|
|
RUN mkdir -p \
|
|
/config/nginx \
|
|
/config/ssl \
|
|
/config/telegram_sessions \
|
|
/backups
|
|
|
|
# Usuario no-root
|
|
RUN useradd -m -u 1000 backupuser && \
|
|
chown -R backupuser:backupuser /backup_service /backups
|
|
USER backupuser
|
|
|
|
EXPOSE 8099
|
|
|
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8099"] |