Dockerのボリュームが作れなかった
Dockerのボリュームが作れなかった
今朝めっちゃ困ってたやつ、忘れないように書く。
現象
社のVPSにDockerとdocker-compose入れてシュッと動かそうとしたら、volumeが作成できなかった。
原因
Dockerのvolumeのドライバがolverlay2になってた。
いままでデフォルトがdevicemapperになってたから、そういうもんだと思ってた。
こっちのほうが色々いいらしい(けど、カーネルが4.0↑だったりファイルシステムが最近のやつじゃないといけなかったりする)
直し方
dockerデーモンの起動オプションで"--storage-driver=devicemapper"とかつけてやると動く。 http://docs.docker.jp/engine/userguide/storagedriver/selectadriver.html
ログのメッセージとか書けや(検索で引っかからんやんけ)という感じだけど、全部終わってからブログに書くの思いついたからな。
the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior.
とか
overlay2: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior.
とかで検索してたし、そのようなアレが出てたんだろう多分。
SSH先のファイルをVSCodeで開くやつ
われわれ人類はリモートのファイルを編集してるときに、すぐvimのキーバインドを忘れて「vim 検索」「vim 正規表現 置換」だとかでググって生涯の20%くらいを無駄にしてしまう。よくない。
なので幼子でも使えるVSCodeでSSH先のファイルを楽に編集できるようにしましょう。
準備
VSCodeにRemote VSCode入れる
あとVSCodeの設定にこういうのを書く
エディタ側がサーバになる。Xとかxdebugみたいな感じ。
rmateとかそういうのをリモート先に入れる
ファイルを送り付けて同期するやつ。
本家はRubyで実装されてるrmateってやつらしい。
GitHub - textmate/rmate: Edit files from an ssh session in TextMate
でもいろんな言語で実装されているので、好きなやつを使いましょう。
使い方はだいたい同じっぽい。
- Ruby version: https://github.com/textmate/rmate
- Bash version: https://github.com/aurora/rmate
- Perl version: https://github.com/davidolrik/rmate-perl
- Python version: https://github.com/sclukey/rmate-python
- Nim version: https://github.com/aurora/rmate-nim
- C version: https://github.com/hanklords/rmate.c
- Node.js version: https://github.com/jrnewell/jmate
- Golang version: https://github.com/mattn/gomate
SSHポートフォワードする
リモートのポート52698→ローカルのポート52698にポートフォワードする。
おれはRLoginを使っているのでこのようにした。
実際にやってみる
SSH先で以下をやる(おれはjmate使ってるので適時置き換えてくれ)
するといきなり手元のVSCodeでリモートのファイルが開く。
適当に保存するだけで同期されるし、適当に閉じるだけで閉じる。便利。
追記
jmateはマルチバイト文字だめっぽいのでrmate使うことにした。