LoginSignup
11
5

More than 3 years have passed since last update.

docker-composeユーザのためのVimプラグイン

Posted at

ども、ゴリラです。
docker-composeユーザのためのVimプラグインを作ったのでそのプラグインの紹介です。
このプラグインを使えば、vimを終了することなくdocker-composeを使用することができます。とても便利。

ぜひ入れて試してみて下さい。

はじめに

以前、docker.vimというVimプラグインを作って、Docker Meetup Tokyoゴリラ.vimで発表してきました。

その中でdocker-compose版もほしいという声を頂いたので、
2日くらいでパーッと作ってみました。

レポジトリはこちらです。

どんな感じ?

こんな感じです。

できること

docker-composeをラップしたコマンドDockerCompose {args}を用意したので、基本docker-composeでできることはすべてできます。
Twitter上で業務でdocker-composeを使用している方たちからヒアリングしたよく使う機能は実装しました。それが次になります。
引数は対応していないのですが、サクッと使うときは便利です。

vim command docker-compose command
:DockerCompose {args} docker-compose {args}
:DockerComposeList {file} docker-compose -f {file} ps
:DockerComposeLogs {file} docker-compose -f {file} logs
:DockerComposeUp {file} docker-compose -f {file} up
:DockerComposeDown {file} docker-compose -f {file} down
:DockerComposeDownAll {file} docker-compose -f {file} down --rmi all -v
:DockerComposeStart {file} docker-compose -f {file} start
:DockerComposeStop {file} docker-compose -f {file} stop
:DockerComposeRestart {file} docker-compose -f {file} restart
:DockerComposeBuild {file} docker-compose -f {file} build
:DockerComposePull {file} docker-compose -f {file} pull
:DockerComposeConfig {file} docker-compose -f {file} config

一点注意ですが、DockerComposeDownAllはコンテナ、イメージ、ネットワークに加え、ボリュームも削除します。
完全にリソースが不要になったときに使用すると便利です。

ちなみにDockerComposeList は専用のインターフェイスを用意していて、実行すると次にようになります。

image.png

このウィンドウでの操作は次にようになります。

key operation
u start contaienr
d stop contaienr
j next contaienr
k previous contaienr
q close window

コンテナを個別で起動したいときにu、停止したいときにdを使用します。

docker.vimとの差別化

docker.vimは単体のコンテナ、イメージの管理に特化したプラグインになります。
機能はとても豊富で、次のことができます。

images

  • image list(udpate every 5 second)
  • delete image
  • pull image
  • search image
  • open DockerHub in browser
  • push an image
  • tag an image
  • build an image
  • save an image to tarball

containers

  • container list(udpate every 5 second)
  • start/stop/restart/kill container
  • delete container
  • attach container
  • run container(like docker run {container})
  • monitoring container logs and CPU/MEM
  • copy file/folders between containers and local filesystem

docker.vimのデモはこちらです。

docker-composeはコンテナへのアタッチできるサブコマンドexecがありますが、こちらはdocker-compose.vimには実装していません。
なぜならdocker.vimにはその機能があり、そちらを使用すれば解決するからです。

docker-compose.vimは複数のコンテナを管理するためのプラグインという位置づけで、
個別のコンテナの管理や操作はdocker.vimのが優れているので、そちらを使用したほうが良いでしょう。

docker-compose.vimの今後

とりあえずがーっと作ったので、もう少しよくあるユースケースの情報を収集して、便利そうなら機能を追加する予定です。
この記事を読んで、これができたら便利そう、などの意見があればぜひコメント頂ければと思います。

最後に

docker.vimdocker-compose.vimを使えば、
Vimでコンテナを使った開発がさらに楽になるので、ぜひとも両方を入れてみて下さい。

そして良いなと思ったらGitHubのスターを押して頂けると励みます。
お礼にバナナあげるかもしれません。

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5