個人設定込みNeovimのDockerイメージを作成した。詳細はこちら。
ひとまず無難なところで、ubuntu:latest
をベースイメージにしてビルドしたところ、イメージのサイズが636MBになった。サイズが大きすぎて外出先で気軽にpullできないので、もっと小さくしたい。alpine
をベースにすればイメージのサイズが小さくなるということだったので試してみた。
設定内容
Dockerfile
FROM alpine:edgeLABEL maintainer="succi0303@gmail.com"RUN echo"http://dl-4.alpinelinux.org/alpine/edge/community">> /etc/apk/repositories
RUN apk update &&\
apk upgrade &&\
apk add --no-cache\
curl \
gcc \
git \
linux-headers \
musl-dev\
neovim \
python-dev \
py-pip \
python3-dev \
py3-pip &&\
rm-rf /var/cache/apk/*ENV LANG="ja_JP.UTF-8" LANGUAGE="ja_JP:ja" LC_ALL="ja_JP.UTF-8"RUN pip3 install--upgrade pip neovim
RUN curl -fLo /root/.local/share/nvim/site/autoload/plug.vim --create-dirs\
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
COPY .config /root/.configRUN nvim +PlugInstall +qa
WORKDIR /usr/src/nvimENTRYPOINT ["nvim"]
結果
636MBから288MBに半減
ubuntu
ベースで636MBあったイメージサイズが、alpine
ベースにしたところ288MBに半減した。まだ十分に小さいとは言い難いけれど、かなり改善できたと思う。
はまったこと
apk
alpineのパッケージ管理システムは、apt
でもyum
でもない、apk
という独自システムである。とくに問題があるという訳ではなかったが、多少使い方を調べる必要があった。
pip3 install neovim
がエラーになる
pip3 install neovim
がnon-zeroでビルドが止まってしまった。
以下の3つのパッケージを追加することで解決できた。
gcc
linux-headers
musl-dev