EmacsのDocker関連パッケージまとめ
docker.el
Silex/docker.el: Manage docker from Emacs.
EmacsからDockerを操作するソフトウェア. Gitに対するMagitみたいなもの?
Dockerのコマンドラインを緻密に覚えなくても適当にTUIで操作が出来て便利.
特にEmacsから起動した場合はDockerイメージ内部の貧弱なBashではなくて, Emacsのテキスト編集キーバインドを使って操作できるのでとても便利.
Docker Remote API
Silex/docker-api.el: Emacs interface to the Docker Remote API
Emacs LispからDockerを操作するためのライブラリ. 先程のdocker.elを作るために作られているようですね. 一般Dockerユーザは直接使うことは無さそうです.
docker-compose-mode
meqif/docker-compose-mode: Major mode for editing docker-compose files
docker-composeのファイルを編集するためのメジャーモード.
でもdocker-compose.ymlってyamlでは? 普通にyamlで編集出来るのでは?
どうもソースコード見た感じキーワード補完を多少強化するらしい. 特に害はないので入れておきますか… 益もあまりなさそうですが.
docker-tramp
emacs-pe/docker-tramp.el: TRAMP integration for docker containers
Trampインターフェイスでコンテナ内部のファイルを編集できる. めっちゃ便利そう.
ところが使おうとしてみたら
Error running timer: (user-error "Not a Tramp file name: \"/docker:\"")
が出て使えませんでした.
helmが悪さしているのかと思ってfind-file
を直接使ってみましたがダメでした.
と思ったらどうも私は公式ドキュメントを読み間違えていたようでした.
C-x C-f /docker:user@container:/path/to/file
where
user is the user that you want to use (optional)
container is the id or name of the container
と書かれていたのでuserを省略する時も@
が必要かと思っていたのですが,
必要ありませんでした.
/docker:container:/
でコンテナ内部を開くことが可能でした.
しかしhelmでのfind-fileを使うと開けないのでこれは不便そう… と思いましたが解決方法がありました.
前述のdocker.elの*docker-containers*
バッファでfキーを押して,
docker-container-find-file-popup
を呼び出すとそのままコンテナの中にTrampで侵入できます.
超簡単ですね.
テキストエディタとDockerクライアントが同居して, Trampという超強力なバイパス機能があるEmacsならではのシナジーでは.
dockerfile-mode
spotify/dockerfile-mode: An emacs mode for handling Dockerfiles
Dockerfileのメジャーモード. シンタックスハイライトとか欲しい場合は必須でしょう.
まあ普通にシンタックスハイライトとビルドですね. 流石にflycheckはなかったです.
slime-docker
Slime使ってないしCommon Lispもここ1年ぐらい触ってないし関係なさそう.