Docker

概要

Docker の管理をしたり Dockerfile を書いたりするための設定を書いている

docker.el

概要

docker.el は Docker のコンテナやらイメージやらを Emacs 上で管理するためのパッケージです。

インストール

el-get 本体にレシピがあるけどブランチ指定がされていなくて私が使ってる自動更新 PR を作る仕組みとは相性が悪いので自前で recipe を用意している

(:name docker
       :description "Manage docker images & containers from Emacs"
       :type github
       :pkgname "Silex/docker.el"
       :branch "main"
       :minimum-emacs-version "26.1"
       :depends (emacs-aio dash s tablist transient))

そしてそれを el-get-bundle でインストールしている

(el-get-bundle docker)

設定は今のところ特に弄っていません。 transient が動くのでキーバインドも特に設定していません。

dockerfile-mode

dockerfile-mode は Dockerfile を編集するためのメジャーモード

インストール

こちらは el-get にレシピが登録されているので単純に el-get-bundle でインストールしている。

(el-get-bundle dockerfile-mode)

カスタマイズ

とりあえずインデントはスペース 2 つで普段書いているのでそれに合わせてカスタム変数を指定している。

(custom-set-variables
 '(dockerfile-indent-offset 2))

hook

lsp-mode では Dockerfile もサポートしている ので

$ npm install -g dockerfile-language-server-nodejs

で LSP サーバを入れた上で dockerfile-mode-hook で lsp を起動させるようにしている。

あとついでに display-line-numbers-mode も有効にしている。

(defun my/dockerfile-mode-hook ()
  (display-line-numbers-mode t)
  (flycheck-mode 1)
  (lsp))

(add-hook 'dockerfile-mode-hook 'my/dockerfile-mode-hook)
(add-hook 'dockerfile-ts-mode-hook 'my/dockerfile-mode-hook)