Я подножка простой рельсы приложение в докер с помощью докер-Compose (ранее ФПГ), как это:Использование Докер-Compose (ранее рис), чтобы связать хрон изображение
докер-compose.yml
db:
image: postgres
volumes:
- pgdata:/var/lib/postgresql/data
web:
build: .
command: bundle exec rails s -b 0.0.0.0
volumes:
- .:/usr/src/app
ports:
- "3011:3000"
links:
- db
Dockerfile
FROM rails:onbuild
мне нужно запустить некоторые периодические охранение скрипты, такие как резервное копирование базы данных, пингом сайтмепов для поисковых систем и т.д.
Я бы предпочел не использовать cron на моей главной машине, так как я предпочитаю, чтобы приложение было переносимым, и моя идея - использовать компоновку docker для связывания изображения, такого как https://registry.hub.docker.com/u/hamiltont/docker-cron/, используя docker-compose.
Официальный сайт rails не имеет разрешения ssh, поэтому я не могу просто предоставить контейнер cron ssh в веб-контейнер и запустить скрипты.
Есть ли у docker-compose способ для контейнера получить оболочку в связанный контейнер для выполнения некоторых команд?
Благодарим вас за полезную информацию и за то, что указали мне на докер-ру. Мне просто нужно запустить несколько простых запланированных задач, таких как еженедельный sitemap.xml ping для поисковых систем, ежедневные дампы базы данных и загрузка дампа в amazon S3, отправка еженедельного электронного дайджеста зарегистрированным пользователям ... Точно обычные вещи, которые я бы установил cron в среде без докеров. – TopperH
@TopperH попробуем сделать снимок следующего дизайна: mount '/ var/run/docker.sock' в контейнер' cron' и установить Docker внутри него. Вы сможете выполнять команды докеров с контейнера докеров. Если Docker CLI недостаточно, установите предпочтительную клиентскую библиотеку докеров (например, 'docker-py') в' cron'. –
это звучит очень интересно. Я подожду еще немного, прежде чем принимать ваш ответ на случай, если вокруг будет готовое решение для докеров. – TopperH