1. やりたいこと
ラズパイを自宅サーバーとして運用していますが、再起動する際にいくつかあるアプリについていちいちdocker compose upするのが面倒なので、systemdから自動起動するようにします
2. 手順
以下の手順で設定します
・1.systemd serviceファイルを作成する
・2.serviceを有効にする
・3.serviceを開始する
2-1. systemd serviceファイルを作成する
/etc/systemd/system/に拡張子がserviceであるファイルを置くとsystemdサービスとして扱われます。今回はラズパイなのでnanoエディタで作成編集していきます
sudo touch etc/system/hoge.service
sudo nano etc/system/hoge.service
/hoge/ユーザー名/dev/hoge/docker-compose.yml を実行する場合、以下のように書きます。特に説明を受けなくても何をやっているか分かるのが良いですね
/etc/systemd/system/hoge.service
[Unit]
Description=Start hoge Docker Compose project at boot
After=network-online.target docker.service
Requires=docker.service
[Service]
Type=oneshot
WorkingDirectory=/home/ユーザー名/dev/hoge
ExecStart=/usr/bin/docker compose up --build -d
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
2-2. サービスを有効にする
自動起動する為にはenableしておく必要があります
terminal
sudo systemctl daemon-reexec
sudo systemctl enable hoge
2-3. サービスを起動する
次回からシステムが起動するとサービスが実行されますが、現在は起動していない状態ですので以下コマンドで起動しておきます。ここで一度起動しておけば、作成したサービスに不具合があるなどした場合にすぐ分かります
terminal
sudo systemctl start rp5_sensor.service
まとめ
簡単ですね
レッツトライ