docker
systemd
init.d

systemd の Unit ファイルの書式を Docker でチェックする

systemd の Unit ファイルを作ってもちゃんと動くかどうか確認するためにサーバに配置しなければならないのが面倒すぎるので Docker で構文チェックする方法を調べた。

CentOS7 標準の Docker イメージには systemd が入っていないが、systemd 用のイメージが centos/systemd に用意されているのでこれを使う。

まずは Unit ファイルを作成する。

$ mkdir systemd/

$ vim systemd/your-app.service

作成した systemd/ マウントして systemd 関連のコマンドを実行する。


# 書式チェック
$ docker run --rm -v `pwd`/systemd:/systemd centos/systemd systemd-analyze verify /systemd/your-app.service

# 起動設定
$ docker run --rm -v `pwd`/systemd:/systemd centos/systemd systemctl enable /systemd/your-app.service
Created symlink /etc/systemd/system/your-app.service, pointing to /systemd/your-app.service.