shimgo
1/8/2018 - 8:49 AM

cronジョブでデータベースに繋げない

cronジョブの実行時には独自の環境変数設定が使われるため、whenever Gemの設定ファイルの中で 以下のような環境変数引き継ぎ設定を記入していた。

ENV.each{|k,v| env k.to_sym, v}

しかしcronジョブ実行時にはDBに接続できるだけの環境変数がそろっておらず、 以下のようなメッセージが表示された。

Access denied for user 'root'@'172.17.0.4' (using password: NO) (Mysql2::Error)

これは、whenever Gemの設定をDockerfile内で行っていたため、Dockerfile内の環境変数が引き継がれて しまったもの。 whenever Gemの設定をスクリプトに切り出したらうまくいった。(実行ユーザをrootにしたからではないはず...)