馬とテニスのIT革命
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Docker

Dockerコンテナのビルド時にvi(vim)をインストールする

以前、Docker コンテナ上のファイルをローカルにコピーする記事を書きました。

あわせて読みたい
Dockerコンテナ上のファイルをローカルにコピーするコンテナのビルド時に、コンテナ上のサーバにファイルを配備するには Dockerfile を利用すると楽です。 RUN でコマンドを...

その際、コンテナ上の Linux では vi でプログラムを書いてコンパイルしたのですが、実は以下の Docker のイメージには最初から vim(vi)が入っていませんでした。

今回は、そのようなコンテナの場合に、ビルド時に vim(vi)をインストールする方法を紹介します。

viのコマンドがインストールされてるか確認する

起動したコンテナには、exec でシェルログインできます。例えば以下のような感じ。

docker-compose exec [コンテナ名] /bin/bash
docker-compose exec [コンテナ名] /bin/sh

ここで vi や vim のコマンドのパスを調べても結果は空の状態です。

$ which vi

$ which vim

コンテナ上のLinuxのOSとパッケージ管理ツールを確認する

OS のバージョンは以下のファイルで確認できます。uname -a でも表示されるディストリビューションがあるかもしれませんが、Alpine は表示されなかった。

$ cat /proc/version 

Linux version 4.9.93-linuxkit-aufs (root@xxxxxx) (gcc version 6.4.0 (Alpine 6.4.0) )

次にパッケージ管理ツールを確認します。

Alpine Linux なら apk または atp-get が主流なのでしょうか。

残念ながらこの OS には apk がなかったので、apt-get で vi をインストールすることにします。

viのインストール

Docker ファイル(Dockerfile)の内容を以下のようにします。

$ vi Dockerfile

FROM php:7.1.9-apache

RUN apt-get update && apt-get -y install vim

apt-get update しておかないと vim のパッケージがインストールできなかったので、最初に update しています。

これで無事にコンテナ上で vi が使えるようになります。

Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/10/20 14:06:04時点 Amazon調べ-詳細)