はじめに
ラズパイ4にDockerをインストールして、RedmineやJupyterLabを動かしている。
毎回、手動でコンテナの起動コマンドを打つのが面倒くさかったので、cronを使ってラズパイが起動したら、コンテナも立ち上がるようにした。
cronの準備
cronが動いているかの確認
以下のコマンドを実行する。
service cron status
rsyslogのインストール
ネットでcronについて検索したら、まずはログの設定ということでrsyslog.confの確認をする、みたいな記事がちらほらあったので設定してみることにした。しかし、grepを使って漁ってみたが当のファイルが見当たらなかった。
ChatGPTに聞いたところ、どこかのタイミングからRaspberry Pi OSにrsyslogがはじめからインストールされなくなったそう。
なので、以下のコマンドでrsyslogをインストールした。
sudo apt-get install rsyslog
シェルスクリプトの作成
以下のシェルスクリプトを書いた。
echo "start redmine"
cd ./docker/redmine/
docker compose up -d
cd ../../
echo "start jupyter"
cd ./docker/jupyter
docker compose up -d
/home/sierra/docker/redmine/や/home/sierra/docker/jupyter/にyamlがあり、cdで階層を移動しながら起動コマンドを実行する。
別に起動コマンドでファイルを指定すればいいだけなんだけど、いつもこんな感じで起動していたので同じようにしてしまった。
cronの設定
ファイルの作成または編集
以下のコマンドを実行する。管理者権限で実行させる場合はsudoをつける。
crontab -e
sudo crontab -e
エディタを指定する場合
初回起動時、どのエディタを使うかを聞いてきたのでVSCodeを指定した。すると、何故か自分の環境だとファイルが保存されなかった。なので、別のエディタを使用したいのだが、聞いてこない。調べるとEDITOR=***をつけるとエディタを指定できることがわかった。
EDITOR=nano crontab -e
sudo EDITOR=nano crontab -e
crontab
以下のように記載する。
PATHやSHELLなんかも記載しないとダメな様、Bashも-lcオプションをつけないと動かなかった。
HOME=/home/sierra
PATH=/usr/bin:/bin
SHELL=/bin/bash
@reboot bash -lc $HOME/test.sh
コメントを残す