Docker Desktop for WindowsでCron実行専用コンテナを作成する

IT

前回の記事で、Docker Desktop上にCoderを導入し、Webのみで、Dockerコンテナを構築したり、プログラムを作成してデプロイを行ったりする環境を作りました。

今回は、Coderを使って、他のコンテナに対してスケジュール実行するためのCron実行専用コンテナを作成します。


まず、Coderを起動し、ログインします。

前回作成した、Coderフォルダと同一階層に「Cron」フォルダを作成し、下記4つのファイルを作成します。

  • .env
  • crontab
  • docker-compose.yml
  • Dockerfile

Coderの画面では、以下のような感じになります。


それぞれファイルに以下内容を書き込みます。

■.env

Docker Desktop for Windowsでコンテナを実行する場合で、コンテナ内からDockerコマンドを実行したい場合に作成しておきます。

■crontab

Cron実行専用コンテナでスケジュールを設定するためのファイルです。

■docker-compose.yml

Dockerfileを起動するための定義です。

■Dockerfile

コンテナの元にするイメージは「ubuntu」です。

設定は、日本語化、Cronに必要なモジュールのインストールを実施しています。


Coderのターミナルで、下記コマンドを実行し、コンテナを起動すれば完了です。


cd Cron

sudo docker-compose build

sudo docker-compose up -d

ポイントは、BusyBoxのcronを利用している点です。

通常のcronでは、環境変数を独自に持っており、Dockerのホストから引き継いだDockerコマンドを実行するには、別途cron側に環境変数を渡してやる必要があります。

BusyBoxのcronを利用すれば、環境変数引き継ぎ処理を省略できます。

コメント

タイトルとURLをコピーしました