Я создал образ докера для задания cron (скрипт backup.sh) - он копирует файлы на удаленный сервер для резервного копирования.но сначала - когда контейнер запускается, мне нужно создать ssh-ключи и добавить его к авторизованному ключу на удаленном сервере, чтобы я мог подключиться через rsync.
Я не могу понять, как я могу выполнить две задачи в контейнереstart - запустить скрипт authorize.sh и cron
Я пытался вызвать authorize.sh в скрипте backup.sh, но он всегда вызывался одновременно в нескольких контейнерах и техКлюч ssh перезаписывает друг друга, поэтому мне нужно сделать это при запуске контейнера, а не внутри скрипта cron
Я не могу вызвать скрипт в файле docker при сборке образа, так какподключения к удаленному серверу передаются как переменные окружения
Я пробовал вместо CMD ['crond', '-f', '-d', '8'] do CMD ['authorize.sh ',' -f ',' -d ',' 8 '] и добавьте crond -f в сценарий авторизации, но контейнер останавливается после завершения authorize.sh
Dockerfile
FROM alpine:3.6
RUN apk update; \
apk upgrade;
RUN apk add bash openssh-client sshpass rsync
RUN mkdir -p /var/export/
COPY backup.sh /usr/local/bin/backup.sh
RUN chmod +x /usr/local/bin/backup.sh
RUN echo '0 */8 * * * /usr/local/bin/backup.sh' > /etc/crontabs/root
WORKDIR /var/export/
CMD ["crond", "-f", "-d", "8"]