Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

オレオレdocker開発環境を作ってみた

$
0
0

俺が使う俺のためのオレオレdocker イメージを作った

  • マイナーで容量もでかいarchlinuxベース
  • 日本語環境適用
  • 自分のdotfiles適用

他人の作ったベースdockerイメージと自分の作ったカスタムdockerイメージ

oblique/archlinux-yay       latest      2.02GB
└── u1and0/archlinux        latest      2.56GB
    ├── u1and0/zplug        latest      2.64GB
    └── u1and0/neovim       latest      3GB
        └── u1and0/vim-go   latest      3.87GB

u1and0/archlinux
archlinuxpng

  • oblique/archlinux-yayをベースにしました。
  • u1and0/dotfiles v1.13.3を適用しています。
  • pacmanだけてなく、yayでもパッケージのインストール可能です。
  • reflectorで最適なサーバーを選択しています。

u1and0/zplug
zplugpng

  • u1and0/archlinuxをベースにしました。
  • docker hubのビルドテストは何故か失敗していますが、ローカル環境でのビルドは成功しています。リモートのビルドが失敗する原因を調査中。
  • 別環境のWindows上のVirtualBox内のArchlinuxでdocker run u1and0/zplugで動作確認しました。

u1and0/neovim
neopng

  • u1and0/archlinuxをベースにしました。
  • この記事はこのdockerイメージを使って書きました。
  • C-Jから始まるキーバインドでdenite, 例えばC-JC-Nで現在ディレクトリ下のファイル検索、C-JC-Fで現在ファイルを検索
  • F5でファイラーNERDTreeをサイドバーで開く
  • などなど

u1and0/vim-go
vimgopng

  • u1and0/neovimをベースにしました。
  • fatih/vim-go, zchee/deopleteプラグインインストール済み
  • :GoInstallBinariesで手に入るツール取得済み

詳しくはページ上のREADMEで。

なぜArchlinuxか

新しいバージョンのパッケージが手に入りやすいから

pacman -S [package name]で最新版のパッケージをインストールします。
UbuntuやCentOSに落ちているパッケージは古い安定版が多いですが、Archlinux標準のパッケージマネージャpacmanを使えばより新しいバージョンを手に入れることができます。

Archlinuxはローリングアップデートという珍しいアップデート方式を取るLinuxディストロで、Ubuntu18.04のようなバージョンという概念が存在しません。
pacmanデータベースが管理している最新のパッケージ同士の依存関係を解決することがOSアップデートの役割も担っています。

pacman使いたいから

上と同じ。MSYS2CmderからUNIX入門したので、パッケージマネージャーはpacman1が一番慣れているし、pacmanが一番いいパッケージマネージャだとと思ってます。(デスクトップPCはUbuntuユーザー、仮想環境はArchlinuxユーザー。)
bacpacというpacmanのバックアップツールがあり、ワンコマンドで次の機能が使えます。
* pacmanで入れたパッケージのgistへのバックアップ
* ローカルへ復元
* バックアップしたパッケージのリスト表示
* バックアップと現在インストール状況の差分表示
forkして自分で使いやすく改造していますbacpac
bacpacの親リポジトリはメンテナンスを終了しています。

AURからもインストールできる

yay2をインストールしてあるdockerイメージをベースにしているのでyayがつかえます。
pacman -Sで見つからないパッケージはたいていyay -Sで手に入ります。
yayは AURからパッケージを落としてきます。
Ubuntuでいうapt-add-repository [reponame] && apt install [packagename]yay -S [packagename]で済ませるということですね。

実験用

上述の通りArchlinuxベースのコンテナは最新版のパッケージを手に入れやすいので、パッケージの最新機能を試してはコンテナを壊して、再構築してまた試して、という使い方を想定しています。
dockerはきれいな本番環境を作っていく目的にもいいですが、こういう実験的環境構築にも向いていると思います。
Archlinuxは上述したようなアップデート方式から「永遠の不安定版」と呼ばれているので、実機環境よりは仮想環境向きでしょう。

Powerlineフォントについて

三角形のフォントを表示するにはホストマシンにPowerline fontのインストールと「ターミナルのフォント変更作業」が必要です。
インストール方法はgithubに書かれているので従ってください。

docker開発環境を作ってみたとき気づいたメリットとデメリット

メリット

  • エラーやワーニングがでないようにdotfilesを最適化できた
  • Dockerfileが出来上がってしまえば環境の再構築がVirtualBoxよりも早い
  • Go開発の環境構築が湾コマンドですむようになった
1. git pull https://github.com/u1and0/dotfiles 
2. 初回はdotfilesをホームに置き換え
3. 初回はneovimプラグインインストール
4. :GoInstallBinariesで長時間待つ
↓
1. docker pull u1and0/vim-goで長時間待つ

デメリット

  • dotfilesが個人依存なので配布できる形で公開する意味はあるのか?dotfilesにingスクリプトも用意してあるし、ダブりじゃないか
  • dotfiles更新の度にレイヤーの更新をする仕事が増えた
  • historyが残らないのがツラい。開発においては過去のコマンドも資産なので。
  • historyを残すにはホストマシンとボリューム共有してhistoryファイルをリンクするとかcommitするとか一手間必要。
  • レイヤーが重い。ディスク容量を食いつぶす。VirtualBoxでさえディスク容量食いつぶしてるのに。これは最適化の余地あり
  • ホストにもゲストにも同じバイナリ(基本的なgrepとかvimとか、/binとか/usr/bin下にあるようなやつら)があって「それってエコシステムなの?」と自問自答している

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>