まえがき
新しい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
- CentOS
- 18.06.0-ce-mac70 (26399)
- ターミナル
- Hyper 2.0.0
- シェル
- Fish
Docker 環境整備
- Docker for mac をインストール
- なんかアカウント作らされた
Dockerfile を書く
~/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
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 して確認
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
動作確認
console
$ docker run -it saitos /bin/bash
[root@04338d62a4bb /]# hostname
04338d62a4bb
Hyper インストール
https://hyper.is/
ここから DL してインストール
プラグインインストール
# マテリアルテーマ
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/
手順通りインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Fish
https://github.com/fish-shell/fish-shell
手順通りインストールして /etc/shells
に追記
$ 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プラグインインストール
# 履歴で cd できるもの
$ fisher install z
# 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に設定
完成
参考
Hyperでイケてるターミナルをつかおう - Qiita
fish shell を使いたい人生だった | Developers.IO
Hyper と fish の環境構築をしてみたよ - OTOBANK Engineering Blog