first commit
This commit is contained in:
Executable
+47
@@ -0,0 +1,47 @@
|
||||
# Використовуємо стабільну Ubuntu 22.04
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# Вимикаємо інтерактивні запити під час встановлення пакетів
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# 1. Встановлюємо всі необхідні пакети одним шаром
|
||||
# mysql-client - для дампу (сумісний з mysql:latest)
|
||||
# lftp - для SFTP передачі
|
||||
# msmtp - для надсилання пошти
|
||||
# ca-certificates - критично для TLS/SSL (Gmail)
|
||||
# cron - для автоматизації щохвилини
|
||||
# openssh-client - для SSH-ключів
|
||||
RUN apt-get update && apt-get install -y \
|
||||
mysql-client \
|
||||
lftp \
|
||||
msmtp \
|
||||
msmtp-mta \
|
||||
ca-certificates \
|
||||
cron \
|
||||
openssh-client \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 2. Налаштовуємо SSH для роботи з ключами
|
||||
RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
|
||||
|
||||
# 3. Копіюємо конфігураційні файли
|
||||
# Файл налаштування пошти
|
||||
COPY msmtprc /etc/msmtprc
|
||||
RUN chmod 600 /etc/msmtprc
|
||||
|
||||
# Скрипт бекапу
|
||||
COPY backup.sh /usr/local/bin/backup.sh
|
||||
RUN chmod +x /usr/local/bin/backup.sh
|
||||
|
||||
# 4. Створюємо файли логів з правильними правами доступу
|
||||
RUN touch /var/log/msmtp.log && chmod 666 /var/log/msmtp.log
|
||||
RUN touch /var/log/backup.log && chmod 666 /var/log/backup.log
|
||||
|
||||
# 5. Налаштовуємо Cron (запуск щохвилини)
|
||||
# ВАЖЛИВО: додаємо ". /etc/environment;", щоб Cron бачив паролі з docker-compose
|
||||
RUN echo "* * * * * . /etc/environment; /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | crontab -
|
||||
|
||||
# 6. Команда запуску контейнера:
|
||||
# - зберігаємо поточні змінні оточення в /etc/environment (щоб їх бачив Cron)
|
||||
# - запускаємо демон cron у фоновому режимі (флаг -f)
|
||||
CMD ["sh", "-c", "printenv > /etc/environment && cron -f"]
|
||||
Reference in New Issue
Block a user