これはブログです

3DCGとかプログラミングとか

ラズパイ起動後にDockerコンテナを起動させる

はじめに

ラズパイ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


Category :

Tags :


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください