さっきの作業で手動起動になっていたdockerのnetshareプラグインのマウントをSystemdに設定する。
まずは、起動用のシェルを準備。
sudo vi /opt/mountnas.sh sudo chmod 0755 /opt/mountnas.sh
中身
#!/bin/bash docker-volume-netshare cifs--domain ドメイン名(※)
※domainはdocker実行時にも指定できるので削除
また、uid,gidはdocker実行時には指定できないので必要があればここで指定するしかない
その場合は下のようにdocker-volume-netshare起動時にオプション指定しておくことになるがSystemdに設定するとuid,gidがいつも同じになってしまう。きれいに動かしたかったら、プラグインカスタマイズしてdocker実行時にuid,gidを指定できるようにするしかないのかな?
docker-volume-netshare cifs -o uid=hoge,gid=fuga
次にUnit定義ファイル
sudo vi /etc/systemd/system/mountnas.service
中身
[Unit] Description=Mount NAS as Docker Volume Service Before=docker.service [Service] ExecStart=/opt/mountnas.sh [Install] WantedBy=multi-user.target
sudo systemctl enable mountnas sudo systemctl start mountnas
$sudo systemctl status mountnas -l
● mountnas.service - Mount NAS as Docker Volume Service
Loaded: loaded (/etc/systemd/system/mountnas.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2018-01-21 17:57:27 JST; 55s ago
Main PID: 3986 (mountnas.sh)
Memory: 952.0K
CGroup: /system.slice/mountnas.service
tq3986 /bin/bash /opt/mountnas.sh
mq3988 docker-volume-netshare cifs --domain EPEAGR
1月 21 17:57:27 localhost.localdomain systemd[1]: Started Mount NAS as Docker Volume Service.
1月 21 17:57:27 localhost.localdomain systemd[1]: Starting Mount NAS as Docker Volume Service...
1月 21 17:57:27 localhost.localdomain mountnas.sh[3986]: time="2018-01-21T17:57:27+09:00" level=warning msg="Error: open .netrc: no such file or directory"
1月 21 17:57:27 localhost.localdomain mountnas.sh[3986]: time="2018-01-21T17:57:27+09:00" level=info msg="== docker-volume-netshare :: Version: 0.34 - Built: 2017-05-29T13:06:34-07:00 =="
1月 21 17:57:27 localhost.localdomain mountnas.sh[3986]: time="2018-01-21T17:57:27+09:00" level=info msg="Starting CIFS :: netrc: , opts:
warningで「.netrcないからエラー」とかいわれているけど、認証情報はshellから入れているのでたぶん気にしなくてOK
念のため、再起動して動作確認
sudo shutdown -r now systemctl status mountnas