次のように docker-compose (以前の図) を使用して、docker で単純な Rails アプリを実行しています。
docker-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
データベースのバックアップ、検索エンジンへのサイトマップの ping など、定期的なメンテナンス スクリプトを実行する必要があります。
ホスト マシンで cron を使用したくないのは、アプリケーションの移植性を維持したいからです。私の考えは、https: //registry.hub.docker.com/u/ などのイメージをリンクするために docker-compose を使用することです。 hamiltont/docker-cron/ docker-compose を使用します。
Rails の公式イメージでは ssh が有効になっていないため、cron コンテナーを使用して Web コンテナーに ssh し、スクリプトを実行することはできません。
docker-compose には、コンテナがリンクされたコンテナにシェルを取得していくつかのコマンドを実行する方法がありますか?