54 lines
1.5 KiB
Docker
54 lines
1.5 KiB
Docker
FROM debian:bookworm-slim
|
|
|
|
# Instala herramientas necesarias, incluyendo mongodump
|
|
RUN apt-get update && apt-get install -y \
|
|
gzip \
|
|
tar \
|
|
curl \
|
|
unzip \
|
|
fuse \
|
|
cron \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Instala dependencias necesarias
|
|
RUN apt-get update && apt-get install -y \
|
|
gnupg \
|
|
curl \
|
|
ca-certificates \
|
|
lsb-release \
|
|
apt-transport-https
|
|
|
|
# Añade la clave GPG del repositorio de MongoDB
|
|
RUN curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
|
|
gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg
|
|
|
|
# Añade el repositorio de MongoDB
|
|
RUN echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" \
|
|
> /etc/apt/sources.list.d/mongodb-org-8.0.list
|
|
|
|
# Instala mongodump (mongo-tools)
|
|
RUN apt-get update && apt-get install -y mongodb-database-tools
|
|
|
|
# Instala rclone
|
|
RUN curl https://rclone.org/install.sh | bash
|
|
|
|
# Crea los directorios necesarios
|
|
RUN mkdir -p /backup /data-uploads /root/.config/rclone
|
|
|
|
# Declaramos los volúmenes
|
|
VOLUME ["/data-uploads", "/backup", "/root/.config/rclone"]
|
|
|
|
# Copia el script de backup
|
|
COPY backup.sh /usr/local/bin/backup.sh
|
|
RUN chmod +x /usr/local/bin/backup.sh
|
|
|
|
# Copia el cron job
|
|
COPY backup-cron /etc/cron.d/backup-cron
|
|
RUN chmod 0644 /etc/cron.d/backup-cron && \
|
|
crontab /etc/cron.d/backup-cron
|
|
|
|
# Necesario para cron
|
|
RUN touch /var/log/cron.log
|
|
|
|
# Comando de inicio: corre cron y muestra logs
|
|
CMD cron && tail -f /var/log/cron.log |