現在の開発環境と、構築方法をまとめる。
CONTENTS
INTEL NUC
INTEL NUC に CoreOS をインストールした。 Wi-Fi 内蔵なのに CoreOS で使用できないのはもったいない気もする。
スペックとかは失念した。 探すのも面倒なので、新しくするときはそのとき良さそうなやつを選ぶ。
完全に個人用で、チームで共有とかはしない。
CoreOS
CoreOS をインストールして Docker をベースにした開発環境を整える。 Wi-Fi を使えるようにはなっていないので、有線で接続する必要がある。
- CoreOS で Wi-Fi が使えないか調べていたら、「え、なんで」的なやりとりを見つけた
- まあ、そうなるな
インストール方法もどこかに行ってしまった。 USB でインストールしたはず。 これも新しくするときに良さそうな方法を選ぼう。
ユーザーは適宜作成して、core ユーザーは常用しない。 このユーザーには docker グループをつけて、docker コマンドを使用できるようにしておく。
labo-container
labo-container-connect を使用してコンテナを起動する。
INTERFACE_NAME=eno1 /path/to/labo-container-connect/bin/connect
INTERFACE_NAME
には、NIC のインターフェイス名を指定する。
このインターフェイス名からローカルIP アドレスを取得してコンテナに渡している。
起動するイメージは labo-container。 nvim、python、node が入っている。
volume は /docker-volumes/apps:/apps
、/docker-volumes/home:/home
、/tmp/labo-connect/$user
をマウントする。
/docker-volumes
をバックアップすること。
volume のバックアップ
Mac に以下の Launch Agent を記述してバックアップを行う。
ファイルは ~/Library/LaunchAgents/systems.getto.backup-coreos.plist
に保存した。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>systems.getto.coreos-backup</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-av</string> <string>--delete</string> <string>USER@HOST:/docker-volumes/</string> <string>/Users/USER/Works/volumes</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>18</integer> <key>Minute</key> <integer>20</integer> </dict> <key>StandardErrorPath</key> <string>/Users/USER/Works/logs/coreos-backup.stderr.log</string> </dict> </plist><Paste>
USER、HOST、バックアップパスは適宜書き換える必要がある。
以下のコマンドで有効にする。
launchctl unload ~/Library/LaunchAgents/systems.getto.backup-coreos.plist launchctl load ~/Library/LaunchAgents/systems.getto.backup-coreos.plist
load 済みの場合はまず unload する必要がある。
これで定期的に Mac に rsync される。 これを TimeMachine でバックアップしておけばさらに安心。
dotfiles
dotfiles は config-files : GitHub にまとめてある。
これを ~/.config
にチェックアウトすれば良いかというとそれだけではなく home ディレクトリを復元する必要がある。
これは上記バックアップから復元するしか方法はない。
docker-wrapper
実行環境は docker image に閉じ込めて docker run で起動する。
これを docker-wrapper で普通のコマンドと同じ要領で実行できるようにする。 コマンドは docker-wrapper-commands にまとめてある。
これらをチェックアウトして PATH を通しておく。
まとめ
2019年現在の開発環境の構築方法をまとめた。
とにかく volume のバックアップが肝。 なのにバックアップの確認はおろそかになっていて、今回も確認している途中でバックアップができていないことに気づいた。 季節ごとくらいの頻度で見直すべきか。