MacBook に Docker と Hyper-Term と Fish-Shell を入れて開発環境を整える

# まえがき
新しいMBP買ったんですよ、13インチi7 2018版です（自慢）
これまでは Windows10 + WSL で シェル環境を使っていたのですが、いろいろと好き放題して何が入っているのかわからないような状況にしてしまったので、反省を込めて開発環境はDockerベース＋見た目かっこいいシェルで構築しようと思います。
ターミナルは iTerm2 じゃなく Hyper ＋ FishShell がナウいらしいので使っていきます。

# やりたいこと
- Docker で開発環境を構築する
- ターミナルをいい感じにする

# 導入するもの
- macOS High Sierra
    - 10.13.6（17G2208）
- Docker Community Edition
    - 18.06.0-ce-mac70 (26399)
        - CentOS
            - AWS-CLI
            - Python3
- ターミナル
    - Hyper 2.0.0
-  シェル
    -  Fish

# Docker 環境整備
- Docker for mac をインストール
    - https://store.docker.com/editions/community/docker-ce-desktop-mac
- なんかアカウント作らされた

## Dockerfile を書く

```docker:~/work/dockerfile
FROM centos:latest
MAINTAINER saitotaks
LABEL version="1.0"

ARG pip_installer="https://bootstrap.pypa.io/get-pip.py"
ARG ius_repository="https://centos7.iuscommunity.org/ius-release.rpm"

# Install packages
RUN yum update -y  && \
    yum install -y python curl git groff

# Install aws-cli
RUN curl ${pip_installer} | python && \
    pip install awscli

# Install python3.6
RUN yum install -y ${ius_repository} && \
    yum install -y python36u python36u-libs python36u-devel python36u-pip

# Check versions
RUN aws --version && \
    python --version && \
    python3.6 --version
```

### CentOSが必要だったのでpull


```bash:console
$ docker --version
Docker version 18.06.0-ce, build 0ffa825
$ docker pull centos:latest
...
Digest: sha256:b67d21dfe609ddacf404589e04631d90a342921e81c40aeaf3391f6717fa5322
Status: Image is up to date for centos:latest
```

## Docker build して確認
```bash:console
$ docker build -t saitos .
Sending build context to Docker daemon  3.584kB
...

aws-cli/1.15.65 Python/2.7.5 Linux/4.9.93-linuxkit-aufs botocore/1.10.64
Python 2.7.5
Python 3.6.5
Removing intermediate container 4db9c5b2e008
 ---> e57077f745a2
Successfully built e57077f745a2
Successfully tagged saitos:latest

```

## 動作確認
```bash:console
$ docker run -it saitos /bin/bash
[root@04338d62a4bb /]# hostname
04338d62a4bb
```

# Hyper インストール

https://hyper.is/
ここから DL してインストール

## プラグインインストール

```bash
# マテリアルテーマ
hyper i hyper-material-theme
# 背景透過
hyper i hyper-transparent-bg  
# キー押したときにかっこいくなる
hyper i hyperpower
# 複数タブに同時にキー送れる
hyper i hyper-broadcast
# バッファに表示された文字列を検索できる
hyper i hyper-search
# フッターにステータス表示
hyper i hyper-statusline
# タブにアイコン表示
hyper i hyper-tab-icons-plus
```
# Fish
## Homebrew インストール
https://brew.sh/
手順通りインストール

```bash
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

## Fish 
https://github.com/fish-shell/fish-shell
手順通りインストールして `/etc/shells` に追記

```bash
$ sudo sh -c "echo '/usr/local/bin/fish' >> /etc/shells"
$ tail /etc/shells
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish
$ fish -v
fish, version 2.7.1
＄ # ターミナル変更、ログオフ必要
$ chsh -s /usr/local/bin/fish

```

## Fisheram
Fish のプラグインマネージャです
https://github.com/fisherman/fisherman
手順通りインストール

```
$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
```

## Fishプラグインインストール
```bash
# 履歴で cd できるもの
$ fisher install ｚ
# Dockerコマンド補完
$ fisher install docker-completion
# bobthefish テーマ
$ fisher install omf/theme-bobthefish
# テーマに必要な Powerline フォントをインストール
$ ./fonts/install.sh 
Copying fonts...
Powerline fonts installed to /Users/saitotak/Library/Fonts
# fish に文字コード指定してあげる必要がありました
＄ echo "export LANG=ja_JP.UTF-8" >> ~/.config/fish/config.fish

```

```~/.hyper.js
    // default font size in pixels for all tabs
    fontSize: 13,

    // font family with optional fallbacks
    //fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
    fontFamily: '"Source Code Pro for Powerline"',
```

## デフォルトターミナルをFishに設定
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/0a9b16d3-a7d8-ba78-795d-becde137b172.png)


## 完成
できたー 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/ce7dd4f4-e606-c75f-30d3-57084d43dd67.png)



# 参考
[Hyperでイケてるターミナルをつかおう - Qiita](https://qiita.com/vimyum/items/44478a51ef3a6f49804f)
[fish shell を使いたい人生だった ｜ Developers.IO](https://dev.classmethod.jp/etc/fish-shell-life/)
[Hyper と fish の環境構築をしてみたよ - OTOBANK Engineering Blog](https://engineering.otobank.co.jp/entry/2018/07/20/105813)