• 作成:

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

daewok/slime-docker: Emacs package to make it easy to launch and connect to a Lisp process in a docker container with SLIME.

Slime使ってないしCommon Lispもここ1年ぐらい触ってないし関係なさそう.