株式会社オープンロジ CTOの五十嵐(@migrs)です。
OPENLOGI Advent Calendar 2017 の7日目の記事になります。

オープンロジの開発環境

オープンロジでは、これまで特にエンジニアからの指定がなければ MacBook Pro 15" を標準マシンとして支給していたのですが、Docker による開発環境を整備してからというもの macOS 上で開発する必要性が薄れ、むしろ Docker for Mac のホストボリュームマウントが異常に遅い問題がツラすぎて、とてもみんなにオススメできる開発環境では無くなってしまいました。

Vagrant + BargeOS で運用する Docker 環境も用意してますが、Linux 上で開発した方が総合的に幸せだと感じたため、主に社内のエンジニア向けに導入ハードルを下げるためのメモとしてまとめつつ、せっかくなので Advent Calendar のネタとして公開します。

(Docker for Mac の cached オプションを利用するという手も有力ですが、書き込み速度は依然遅いままなので改善はするがベストではないと思っています。)

Ubuntu 17.10 のセットアップ

Linux ディストリビューションは何でも良いのですがメジャーで扱いやすい Ubuntu を勧めておきます。

Ubuntu のインストール方法はチュートリアルにあるとおりなのでそれに従いましょう。

セットアップ時の選択肢として、

  • Language: English
  • Installation type: Install Ubuntu alongside Windows Boot Manager
  • Keyboard layout: Japanese / Japanese (日本語配列の場合)

あたりを選択した前提で以降話を進めます。

パッケージのインストールと設定

etckeeper

個人的な趣味なのですが、なにはともあれ一番最初に etckeeper をインストールすることにしています。

sudo apt install etckeeper

etckeeper は自動で etc ディレクトリのバージョン管理をしてくれます。

日本語入力設定

日本語入力できるようにするために、

[Settings] -> [Region & Languages] -> Input Source
Japanese (Mozc) を追加する必要があるのですが、インストール直後の状態では選択肢がでてこないので、以下の手順で追加します。

  1. [Language Support] を起動すると日本語入力に必要なパッケージのインストールが始まるので見守ります
  2. ログアウトします
  3. [Settings] -> [Region & Languages] -> Input SourceJapanese / Japanese (Mozc) が選べるようになっているので追加
  4. メニューバーの Input Mode アイコンから Japanese (Mozc) を選択

キーボードレイアウト変更

Mac と同じように、CapsLock を Ctrl にしたり、テキストフィールドで Emacs キーバインド使ったりしたい場合は、gnome-tweak-tool で設定します。

sudo apt install gnome-tweak-tool

[Tweaks] -> [Keyboard & Mouse] で、

  • [Emacs Input] -> [ON]
  • [Additional Layout Options] -> [Caps Lock key behavior] -> [Caps Lock is also a Ctrl] を選択

Docker のインストール

あとはメインの Docker さえインストールすれば最低限開発できる環境は出来上がりです。

sudo apt install docker docker-compose
sudo gpasswd -a $USER docker

おすすめのソフトウェア

個人的に入れてるパッケージを晒しておきます。

apt でインストールできるタイプ

パッケージ名 説明
terminator 画面分割などができるターミナル
neovim 男は黙って Vim
awscli AWS クライアント
tig Git クライアント
git-flow Git Flow
fdclone ファイラー
liquidprompt シェルプロンプト
corebird Twitter クライアント

ダウンロードしてインストールするタイプ

ソフトウェア名 説明
Visual Studio Code モダンなエディタ使いたいなら
IntelliJ IDEA IDEなら
Google Chrome ブラウザ
Slack チャット
DBeaver データベース接続

Golang なソフトウェア

ソフトウェア名 説明
goofsy s3 fuse クライアント
ripgrep 高速 grep
fzf peco より fzf 派
ccat シンタックスカラー対応 cat

本当は開発環境自体のOSの依存も無くしたい

開発環境自体も docker で構築できれば良いと思っているので準備できたら共有します。

まとめ

最終的には自分が一番やりやすい環境で開発してもらえれば良いと思っていますが、Mac に比べて ThinkPad 等の方がメモリーもCPUもハイスペックなものを載せられコストパフォーマンスもよいので今後の標準開発環境としてはこちらをオススメしていきたいと思っています。

オープンロジの開発環境についてもっと詳しく聞いてみたい方はぜひ気軽に池袋まで遊びに来てください!