何これ?
何の記事?
Dockerコンテナ内に普段の自分のVim環境を持ってくる方法について書きました。
誰向け? どんな役にたつ?
- Dockerコンテナ内でもVimりたい人
- コンテナの中でVimを使ってみたい人
- Vim以外にもvimrcの設定や、Vimプラグインも入れたい人
あらすじ
開発環境をDockerで構築しているのですが、コンテナ内でコードを見たい、触りたい……となったのですが、VimどころかViですら入っていなかったので、調べながら環境を作った話を書き残します。
何をやったか
vim はapt install でインストールする
まずはVimのインストールですが、これはコンテナにDockerfileを作り、そのファイル内に下記のように記述します。
RUN apt update \
&& apt install -y \
vim
これで、インストールしますか?系の質問はYesで、コンテナ内にVimをインストールしてくれます。
curlを入れてvim-plugをインストールする
Vimプラグインを動かすにあたって、プラグイン管理も入れたい場合、それをインストールするアプリケーションに加えて、プラグイン管理を入れるコマンドを書きます。
RUN apt update \
&& apt install -y \
vim \
curl \
&& curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
これで、vim-plugをインストールする際のcurlを入れた後、curlを使ったvim-plugのインストールが走ります。
COPYでvimrcを持ってくる
Vimたるもの、vimrcも普段使っているものを持ってきたいですね。
ローカル環境にあるファイルを、コンテナ内に持ってくるにはCOPYコマンドを使って、下記のように書きます。
COPY .vimrc /root/.vimrc
これで、コンテナのルートディレクトリ上に.vimrcを置いておくと、起動時にコンテナ内のルートディレクトリに同じ.vimrcを置いてくれます。
Windowsの場合はvimrcファイルの変換が必要
これで動くと思いきや、コンテナ起動後にVimを立ち上げようとすると、何やらvimrcが壮絶に読めないと怒られました。(エラー画像を取り忘れてしまいましたが……)
M365Copilotに聞くと、改行の扱いがWindowsとは違うからバグってるのでは?……とのこと。
vimrcを開いて、下記コマンドで変更してあげたら怒られなくなりました。
:set ff=unix
結果
FROM postgres:17
RUN apt update \
&& apt install -y \
vim \
nodejs \
curl \
&& curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
COPY .vimrc /root/.vimrc
コンテナ内でVimが使えるようになりました!
この他、Vimに付随するものをインストールしたい場合でも、apt getに追加したり、vimrcに追記すれば使えるようになるかと思います。
もし、困っている方の参考になりましたら。
できなかったこと
今回、カラースキーマを持ってくるところまでいきませんでした。
多分、colorsディレクトリを作って、そこにファイルをCOPYしてきて……でできるかとは思うのですが……。Vimのデフォルトカラーに飽きたら検討しようと思います。
