かゆいとこログ

あと少しなのに届かないかゆいところに効きます

Dockerfileについて

エラーを無視する

コマンドsomethingが失敗する場合,

RUN something; exit 0

とすると無視できる. (参考: docker - Dockerfile build - possible to ignore error? - Stack Overflow )

ENTRYPOINT, CMD, RUNの違い?

RUN

新しいレイヤーでコマンドを実行し,新しいイメージを作る. ソフトウェアをインストールするのによく用いられる.

CMD

"デフォルト"のコマンドやパラメータを設定する. コマンドラインからdocker runする際に上書きできる.

ENTRYPOINT

CMDと似ているけど,コマンドラインから上書きできない.

(参考: Docker RUN vs CMD vs ENTRYPOINT)

Docker上での作業を快適にする設定

lsをカラフルにする

/root/.bashrcに以下を追記する

export LS_OPTIONS='--color=auto'
alias ls='ls $LS_OPTIONS'

docker内の行数とターミナルの行数が合ってないとき

docker run -it -e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM -it /bin/bash

でいける (参考: https://github.com/moby/moby/issues/25450 )

Ctrl-Pを2度押ししたくないとき

以下を~/.docker/config.jsonに追記

{
    "detachKeys": "ctrl-w,q"
}

spacemacsで行番号を表示

基本の設定

.spacemacsにおいて,dotspacemacs-line-numbersが書かれている部分を検索し,値をnilからtに変える.

dotspacemacs-line-numbers t

行番号とコードとの間にスペースが欲しい場合

.spacemacsuser-config部分に以下を記述する.

(unless (display-graphic-p)
  (setq linum-format "%3s "))

;; Alternatively
(unless (display-graphic-p)
  (setq linum-format (concat linum-format " ")))

参考:

Line Number layout too close when using spacemacs in iTerm(and OSX terminal) · Issue #5609 · syl20bnr/spacemacs · GitHub

gitによる変更履歴の確認関連

特定ファイルの変更履歴を見る

git log -p /path/to/file

特定ディレクトリの変更履歴も同様に行ける

Gitで特定ファイルの変更履歴をみる - Bye Bye Moore

man git-log してみると,full-diff optionの説明があり,そこにpオプションの動作についての記述が出てくる.

--full-diff
           Without this flag, git log -p <path>...  shows commits that touch the specified paths, and diffs about the same specified paths. With this, the full diff is shown for commits that touch
           the specified paths; this means that "<path>..." limits only commits, and doesn’t limit diff for those commits.

--full-diffを付けない場合は特定のファイル(ディレクトリでも良いのでパスと呼んでる)にtouchしたコミットとそのファイルに関するdiffを表示し, 付ける場合はファイルにtouchしたコミットと,そのコミットに関するdiffを表示する.

つまり,後者の場合は指定したファイル以外に関するdiffも表示される(指定されたファイルが含まれるcommitにある,他のファイルに関するdiffも表示される)

細かすぎるなこれは・・・ ここまで調べる必要無かったかもだが,深追いするクセでまたやってしまった.

Pipenvで,.venvディレクトリをプロジェクトのディレクトリに配置する

export PIPENV_VENV_IN_PROJECT=1

.bashrcとかに書いておく.

fishユーザなら.config/fish/config.fish

set -x PIPENV_VENV_IN_PROJECT 1

と書いておく

sudoでリダイレクトできない件

普通にリダイレクトしようとすると無理

$ sudo echo "hoge" > fuga.txt
zsh: 許可がありません: fuga.txt

(´・ω・`)

解決策1

$ sudo sh -c "echo 'hoge' > fuga.txt"

解決策その2

$ sudo echo "hoge" | sudo tee fuga.txt

teeコマンドについては以下参考

【 tee 】 標準入力を標準出力とファイルに出力する | 日経 xTECH(クロステック)

GitHub Pagesとやらを設定してみる

GitHub上に自分のブログとかを置いてしまえる, GitHub Pagesとやらがある. CVとか,よくここに置いてある気がする.

pages.github.com

その中で,ブログ作成にJekyllが推薦されていた.
ジキルとハイドのJekyllかな?初めて聞いた. jekyllrb.com rubyで動くらしい. とりあえず qiita.com を参考にrubyの環境をmacOS上に作った. fish shellまだまだ慣れておらず,PATHの追記に苦労した… qiita.com

$ jekyll new blog-name で生成されるファイルをそのままusername.github.ioのリポジトリにpushしてあげると https://username.github.io/開くだけですぐ生成されたページが表示される.
ちょっと感動.

テーマもたくさんあるようなので,楽しめそう. http://themes.jekyllrc.org/
http://jekyllthemes.org/